🇰🇷 한글 설명
GIT 1.5.6.4 이전 버전의 diff_addremove와 diff_change 함수에서 발생하는 스택 기반 버퍼 오버플로우 취약점입니다. PATH 길이가 시스템 제한(PATH_MAX)을 초과하면 로컬 사용자가 임의의 코드를 실행할 수 있습니다.
💡 쉬운 설명
GIT 프로그램이 매우 긴 파일 경로를 처리할 때 메모리 오류가 발생합니다. 이 오류를 악용하면 해당 컴퓨터에 접근할 수 있는 사용자가 원하는 프로그램을 실행할 수 있습니다.
🇺🇸 원문 (English)
Stack-based buffer overflow in the (1) diff_addremove and (2) diff_change functions in GIT before 1.5.6.4 might allow local users to execute arbitrary code via a PATH whose length is larger than the system's PATH_MAX when running GIT utilities such as git-diff or git-grep.
📍 영향받는 시스템
GIT 1.5.6.3 이하 모든 버전
⚔️ 공격 벡터
로컬 사용자가 PATH_MAX를 초과하는 길이의 경로를 사용하여 git-diff, git-grep 등 GIT 유틸리티 실행
🛡️ 대응 방법
GIT을 1.5.6.4 이상으로 업그레이드
🔧 검증 코드
VULNERABLE이 출력되면 1.5.6.4 미만 버전이므로 업그레이드 필요하며, PATCHED이면 안전한 버전입니다
git --version | grep -oP '\d+\.\d+\.\d+' | awk -F. '{if ($1<1 || ($1==1 && $2<5) || ($1==1 && $2==5 && $3<6) || ($1==1 && $2==5 && $3==6 && $4<4)) print "VULNERABLE"; else print "PATCHED"}'