🇰🇷 한글 설명
Node.js용 Git 인터페이스인 simple-git 4.0.0 미만 버전에서 발생하는 취약점입니다. git.clone() 함수에 전달된 customArgs를 통해 공격자가 제어하는 설정 파일을 로드할 수 있으며, 이를 통해 core.sshCommand와 같은 실행 가능한 옵션을 조작하여 Node.js 프로세스 권한으로 임의 명령을 실행할 수 있습니다.
💡 쉬운 설명
프로그램이 Git 명령을 실행할 때 공격자가 만든 가짜 설정 파일을 읽게 만들어, 컴퓨터에 몰래 악성 명령을 내릴 수 있는 보안 구멍입니다. 공격자가 입력한 값을 제대로 검사하지 못해 발생하는 문제입니다.
🇺🇸 원문 (English)
simple-git, an interface for running git commands in any node.js application, enables applications to execute Git operations from JavaScript. Prior to 4.0.0, the default blockUnsafeOperationsPlugin does not completely reject configuration includes supplied through customArgs to git.clone(). The missing include.path classification permits Git to load an attacker-controlled configuration file, and the initial remediation does not cover includeIf.<condition>.path, allowing the same file-loading primitive through a conditional include. A loaded configuration can set an executable Git option such as core.sshCommand, which Git invokes during the clone operation with the privileges of the Node.js process. Exploitation requires the application to pass attacker-influenced custom arguments and requires an attacker-controlled file that the process can read. This issue is fixed in 4.0.0.
📍 영향받는 시스템
simple-git versions prior to 4.0.0
⚔️ 공격 벡터
사용자 입력이 포함된 customArgs를 통해 악성 Git 설정 파일을 로드하고 core.sshCommand 옵션을 조작하여 명령 실행
🛡️ 대응 방법
simple-git 라이브러리를 4.0.0 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 결과에서 simple-git의 버전이 4.0.0 미만인지 확인하십시오.