simple-git, 치명적 RCE 취약점 발견! 지금 바로 업데이트하세요.
simple-git 패키지에서 원격 코드 실행(RCE)이 가능한 취약점(CVE-2026-28292) 발견
케이스 민감성(Case-Sensitivity) 문제로 기존 패치 우회, 공격자가 시스템 명령 실행 가능
1200만+ 주간 다운로드, 73%가 취약 버전 사용 중, 긴급 업데이트 권고
자동화된 보안 도구(Automated Security Tools)의 취약점 탐지 지연으로 인한 광범위한 위험
단일 문자 변경으로 인한 RCE 우회
CodeAnt AI의 분석에 따르면, simple-git의 block-unsafe-operations-plugin.ts 내 정규식(regex)의 케이스 민감성(Case-Sensitivity) 문제로 인해 RCE가 발생한다. 특히, `protocol.allow`를 검사하는 과정에서 대문자 변형(e.g., `PROTOCOL.ALLOW`)을 허용하여 기존 패치를 우회한다. 이는 공격자가 임의의 시스템 명령(OS Command)을 실행할 수 있게 한다.
취약점 분석 및 익스플로잇(Exploit) 과정
취약점은 Git 설정 키(Configuration Key)의 케이스 비민감성(Case-Insensitivity)과 simple-git의 케이스 민감한 정규식 검사 간의 불일치에서 기인한다. 공격자는 `-c PROTOCOL.ALLOW=always`와 같은 인자를 사용하여 ext:: 프로토콜(ext:: Protocol)을 활성화하고, 임의의 명령을 실행한다. 실제 PoC(Proof of Concept) 코드를 통해 공격 성공을 확인할 수 있다.
영향 범위 및 심각성
본 취약점은 CVSS 9.8의 심각도를 가지며, 1200만+ 주간 다운로드, 73%의 취약한 버전 사용으로 인해 광범위한 영향을 미친다. 공격 성공 시, 파일 읽기, 정보 유출, 악성코드 설치, 리버스 쉘(Reverse Shell) 개방 등 광범위한 권한 탈취(Privilege Escalation)가 가능하다. 특히, CI/CD 파이프라인(CI/CD Pipelines) 및 자동화 도구에서 사용되는 경우 위험이 더욱 크다.
패치 지연의 문제점
취약점 패치(v3.32.3)가 릴리즈되었음에도 불구하고, NVD(National Vulnerability Database)에 CVE 정보가 아직 공개되지 않아 npm audit, Dependabot, Renovate, Snyk CLI 등 자동화된 보안 도구에서 탐지가 지연되고 있다. 이는 패치 적용을 늦추는 주요 원인이며, 취약한 버전 사용률을 높이는 결과를 초래한다.
실제 공격 시나리오 및 방어 전략
사용자 제어 입력값을 simple-git의 `customArgs` 매개변수로 전달하는 모든 애플리케이션이 공격 대상이 될 수 있다. 공격자는 `-c PROTOCOL.ALLOW=always`를 주입하고, 레포지토리 URL을 `ext::` 명령으로 설정한다. 따라서, 사용자 입력값 검증 강화, 최신 버전으로의 즉각적인 업데이트, 보안 취약점 분석 도구(Vulnerability Scanning Tools) 활용을 통해 피해를 최소화해야 한다.