🇰🇷 한글 설명
Gitk는 Git 저장소 히스토리를 보여주는 도구인데, 2.41.0 이후 특정 파일명 구조를 가진 악의적 저장소를 통해 사용자가 gitk 명령어 실행 시 공격자가 심어놓은 임의 스크립트가 사용자 권한으로 실행될 수 있습니다. 사회공학 기법을 통해 사용자를 속여 취약한 저장소를 복제하고 gitk를 실행하도록 유도하는 방식으로 공격합니다.
💡 쉬운 설명
Git 저장소를 볼 때 쓰는 gitk 프로그램에서 악의적으로 이름 붙인 파일이 있는 저장소를 열면 해커가 심어놓은 프로그램이 자동으로 실행될 수 있습니다. 사용자의 권한으로 실행되므로 시스템 피해가 심각할 수 있습니다.
🇺🇸 원문 (English)
Gitk is a Tcl/Tk based Git history browser. Starting with 2.41.0, a Git repository can be crafted in such a way that with some social engineering a user who has cloned the repository can be tricked into running any script (e.g., Bourne shell, Perl, Python, ...) supplied by the attacker by invoking gitk filename, where filename has a particular structure. The script is run with the privileges of the user. This vulnerability is fixed in 2.43.7, 2.44.4, 2.45.4, 2.46.4, 2.47.3, 2.48.2, 2.49.1, and 2.50.
📍 영향받는 시스템
Git Gitk 2.41.0~2.42.x, 2.43.0~2.43.6, 2.44.0~2.44.3, 2.45.0~2.45.3, 2.46.0~2.46.3, 2.47.0~2.47.2, 2.48.0~2.48.1, 2.49.0
⚔️ 공격 벡터
특정 파일명 구조를 가진 악의적 Git 저장소 복제 후 gitk filename 명령 실행 시 공격자 스크립트가 자동 실행
🛡️ 대응 방법
Git/Gitk를 최신 버전(2.50 이상 또는 각 버전별 패치: 2.43.7, 2.44.4, 2.45.4, 2.46.4, 2.47.3, 2.48.2, 2.49.1)으로 업데이트
🔧 검증 코드
gitk 버전이 표시되면 설치 확인. 2.50 이상이거나 각 메이저 버전별 패치 버전 이상이면 안전
gitk --version 2>/dev/null | grep -E '^gitk version'