🇰🇷 한글 설명
GitPython 3.1.58 미만 버전에서 옵션 이름 검증 로직의 취약점으로 인해 config-name 주입 공격이 가능합니다. 공격자는 등호(=), 해시(#), 공백 등을 사용하여 임의의 git-config 지시문을 위조할 수 있으며, 이를 통해 core.sshCommand 등을 조작하여 임의의 명령어를 실행할 수 있습니다.
💡 쉬운 설명
Git 관련 설정을 처리하는 프로그램에서 입력값 검사가 제대로 되지 않아 발생하는 보안 문제입니다. 나쁜 의도를 가진 사용자가 설정값에 몰래 명령어를 끼워 넣어 컴퓨터를 마음대로 조작할 수 있습니다.
🇺🇸 원문 (English)
GitPython before 3.1.58 contains a config-name injection vulnerability in the option-name validator that allows attackers to forge arbitrary git-config directives by injecting equals signs, hash symbols, and whitespace into option names. Attackers can inject malicious option names like 'sshCommand = touch /tmp/RCE #' to execute arbitrary commands via core.sshCommand or core.hooksPath on the next git operation.
📍 영향받는 시스템
GitPython 3.1.58 미만 모든 버전
⚔️ 공격 벡터
옵션 이름에 특수문자(=, #, 공백)를 주입하여 git-config 설정을 조작하고 명령어를 실행하는 방식
🛡️ 대응 방법
GitPython 버전을 3.1.58 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 Version이 3.1.58 미만이면 취약한 상태이며, 3.1.58 이상이면 안전합니다.
pip show gitpython | grep Version