
CVE-2024-52005에 대한 개념 증명: Git의 ANSI 이스케이프 시퀀스 주입. 강화된 컨테이너 이미지에서 잘못된 'not_affected' VEX 주장을 시연합니다.
이 저장소는 Git 작업 중 사이드밴드 채널을 통한 ANSI 이스케이프 시퀀스 삽입 취약점인 CVE-2024-52005에 대한 개념 증명(PoC)을 포함합니다.
CVE-2024-52005는 높은 심각도(CVSS 7.5)의 취약점으로, Git 2.48.1, 2.47.3, 2.46.5, 2.45.4, 2.44.3 이전 버전에 영향을 미칩니다.
이 PoC는 일부 강화된 컨테이너 이미지가 VEX(취약점 악용 가능성 교환) 문서에서 "영향 없음(not_affected)" 상태를 잘못 주장하면서도 취약한 Git 버전을 배송하고 있음을 증명하기 위해 만들어졌습니다.
이 취약점을 통해 공격자는 다음을 수행할 수 있습니다:
이 GitHub 저장소를 사용하여 DHI ArgoCD 컨테이너에 대해 직접 테스트:
docker run --rm -it dhi.io/argocd:3 sh -c '
git clone https://github.com/andrewd-cg/cve-2024-52005-poc.git /tmp/poc &&
cd /tmp/poc &&
sh docker-test.sh
'
이 명령:
출력에서 ^[[31m 또는 ^[[32m이 보이면 취약점이 확인된 것입니다.
저장소를 클론하고 로컬에서 테스트 실행:
git clone https://github.com/andrewd-cg/cve-2024-52005-poc.git
cd cve-2024-52005-poc
./test_ansi_injection.sh
이 스크립트:
# 사회 공학 페이로드로 악성 저장소 생성
./exploit_cve_2024_52005.py create social_engineering
# 취약한 컨테이너에 대해 테스트
./exploit_cve_2024_52005.py test
# 결과 확인
cat -v /tmp/cve-2024-52005-output.log
공격자가 공개 GitHub 저장소 생성 → ArgoCD가 자동으로 클론 →
Git 훅이 ANSI 코드 주입 → 배포 로그에 백도어 숨김
개발자가 저장소 클론 → 악성 훅 실행 → 가짜 "Build PASSED" 주입 →
실제 실패 숨겨짐 → 취약한 코드가 프로덕션에 배포
보안 스캐너가 저장소 클론 → 훅이 ANSI 코드 주입 →
"0 취약점" 표시 → 실제 취약점 숨겨짐 →
악성 코드가 검토 통과
프레임워크에는 8개의 사전 구축된 공격 페이로드가 포함되어 있습니다:
많은 컨테이너 이미지가 CVE-2024-52005에 대해 "영향 없음"을 주장하며 다음과 같은 근거를 제시합니다:
{
"justification": "vulnerable_code_cannot_be_controlled_by_adversary"
}
신뢰할 수 없는 저장소를 클론하도록 설계된 컨테이너의 경우 이는 올바르지 않습니다:
공격자는 Git 훅과 사이드밴드 메시지를 통해 취약한 코드 경로를 제어할 수 있습니다.
CVE-2024-52005의 영향을 받는 Git 버전:
패치된 버전으로 업데이트:
# 버전 확인
git --version
# 패키지 관리자를 통해 업데이트
apt update && apt upgrade git # Debian/Ubuntu
brew upgrade git # macOS
즉시 업데이트할 수 없는 경우:
# 모든 컨테이너 이미지 테스트
docker run --rm -v $(pwd)/ansi-test-repo:/repo:ro YOUR_IMAGE:TAG \
sh -c 'git clone /repo /tmp/test 2>&1' | cat -v
# 출력에서 ^[[31m과 같은 ANSI 코드 확인
이 PoC는 다음을 위해 만들어졌습니다:
승인된 보안 테스트 전용입니다. 소유하거나 테스트 권한이 없는 시스템에는 사용하지 마십시오.
MIT 라이선스 - 자세한 내용은 LICENSE 파일 참조
컨테이너 이미지 보안 연구의 일환으로 작성되었으며, 정확한 취약점 공개 및 평가의 중요성을 보여줍니다.
문제를 발견하거나 개선 사항이 있으신가요? 풀 리퀘스트를 환영합니다!