CVE-2026-9277
shell-quote quote()는 객체 토큰 형태를 검증하지 않아 .op의 줄 종결자를 통한 명령 주입을 허용합니다.
- 게시됨
- 2026. 5. 22.
- 업데이트됨
- 2026. 9. 14.
- CNA 할당 중
- harborist
- 증거 관찰됨
- 2026. 8. 17.
기본 CVSS
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X낮음 · 다음 30일
- 백분위수
- 56.1%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
# shell-quote의 `quote()` 함수가 객체 토큰 입력을 `parse()`에서 사용하는 연산자 모델에 대해 검증하지 않았습니다. `.op` 필드는 `/(.)/g`를 사용하여 문자 단위로 백슬래시 이스케이프 처리되었는데, JavaScript에서 이 정규식은 줄 종결자(\n, \r, U+2028, U+2029)와 일치하지 않습니다. 따라서 `.op`에 포함된 줄 종결자는 이스케이프되지 않은 채 출력으로 전달되었습니다. POSIX 셸은 리터럴 개행 문자를 명령 구분자로 취급하므로, 그 뒤의 모든 내용은 두 번째 명령으로 실행될 수 있습니다. 취약한 코드 경로는 두 가지 방식으로 도달할 수 있습니다: (1) 외부 입력에서 `{ op: '...\n...' }`를 직접 구성하는 경우, (2) `envFn`이 공격자의 영향을 받는 `.op`를 가진 객체 토큰을 반환할 때 `parse(cmd, envFn)`을 통하는 경우입니다. 둘 다 문서화된 API 표면입니다. 문자 단위 이스케이프를 엄격한 형태 검증으로 대체하여 수정되었습니다: `.op`는 파서의 제어 연산자 허용 목록과 일치해야 하며, `{ op: 'glob', pattern }`은 `pattern`을 검증하고 줄 종결자를 금지하며, `{ comment }`는 `comment`를 검증하고 줄 종결자를 금지하고, 다른 객체 형태는 `TypeError`를 발생시킵니다.
소스
1CVE-2026-9277에 대한 개념 증명 익스플로잇, shell-quote 라이브러리의 명령어 주입 취약점. RCE를 유발하기 위해 조합적 변이를 사용한 재귀적 JSON 트래버설을 수행하며, OOB 검증 및 제로-노이즈 로깅을 지원합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.