🇰🇷 한글 설명
Gitea의 markup Context 필드에서 유도된 URL이 이스케이프 처리 없이 외부 렌더러 명령 템플릿에 삽입되어 쉘 스타일 인자 분할 취약점이 발생합니다. 공격자가 조작된 Context를 통해 추가 인자를 주입하면, pandoc과 같은 외부 렌더러를 사용하는 환경에서 실행 가능한 필터 파일을 로드하여 Gitea 서비스 계정 권한으로 임의 코드를 실행할 수 있습니다.
💡 쉬운 설명
Gitea에서 문서 형식을 변환할 때 입력값을 제대로 검사하지 않아 발생하는 보안 문제입니다. 공격자가 특수하게 만든 문구를 입력하면 서버가 해커의 명령을 대신 실행하게 만들 수 있습니다.
🇺🇸 원문 (English)
Gitea substitutes a URL derived from the markup Context field into external renderer command templates without escaping the reference path before shell-style argument splitting. A crafted Context can inject additional renderer arguments, including options that load executable filter files. On deployments using a susceptible external renderer such as pandoc, a user who can place a filter file at an accessible path can cause it to execute as the Gitea service account; the public repository markup endpoint itself can be reachable without authentication.
📍 영향받는 시스템
외부 렌더러(예: pandoc)를 사용하는 취약한 버전의 Gitea
⚔️ 공격 벡터
인증 없이 접근 가능한 공개 저장소의 마크업 엔드포인트를 통해 조작된 Context 값 주입
🛡️ 대응 방법
Gitea를 최신 보안 패치가 적용된 버전으로 업데이트하고, 외부 렌더러 사용 시 입력값 검증 및 권한 제한을 강화하십시오.
🔧 검증 코드
출력된 Gitea 버전을 확인하여 해당 취약점이 해결된 최신 버전인지 대조하십시오.
gitea --version 2>/dev/null || echo 'Gitea not found'