Kestrel
대시보드로 돌아가기
CVE-2026-9277HIGH· 8.1MITRENVDGHSA대응게시일: 2026. 05. 22.수정일: 2026. 07. 23.CNA: 7ffcee3d-2c14-4c3e-b844-86c6a321a158Deferred

shell-quote's `quote()` function did not validate object-token inputs against the operator model used by `parse()`. The `.op` field was back

RCE

위협 신호 · CVSS · EPSS · KEV

정기 패치· 높은 악용 신호 없음
CVSS
8.1high

이론적 심각도 점수

EPSS
0.8%상위 45.7%

30일 내 악용 확률 예측

KEV
미등재

실측 악용 기록 없음

권장 대응 기한14일 이내CISA SSVC 기준

2주 이내 패치 — 우선 조치 대상

완전 장악외부 노출· KEV 미등재 · 자동화 어려움 · 완전 장악 · 외부 노출

CVSS 벡터 · 메트릭

악용 경로
공격 벡터네트워크
공격 복잡도높음
필요 권한불필요
사용자 상호작용불필요
범위불변
영향
기밀성 영향높음
무결성 영향높음
가용성 영향높음
버전별 점수
CVSS 4.09.2CRITICAL· 악용성숙도 NOT_DEFINED
CVSS 3.18.1HIGH· 악용성 2.2· 영향도 5.9
CVSS 3.18.1HIGH· 악용성 2.2· 영향도 5.9
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

약점 (CWE)

  • CWE-77

    명령 인젝션 — 입력이 명령 문자열에 주입되어 의도치 않은 명령이 실행됨.

  • CWE-78

    OS 명령 인젝션 — 입력이 시스템 명령에 섞여 임의 명령이 실행됨.

상세 설명

shell-quote's quote() function did not validate object-token inputs against the operator model used by parse(). The .op field was backslash-escaped character by character using /(.)/g, which in JavaScript does not match line terminators (\n, \r, U+2028, U+2029). A line terminator in .op therefore passed through unescaped into the output; POSIX shells treat a literal newline as a command separator, so any content after it would execute as a second command. The vulnerable code path is reachable in two ways: (1) direct construction of { op: '...\n...' } from external input, and (2) via parse(cmd, envFn) when envFn returns object tokens whose .op is attacker-influenced. Both are documented API surface. Fixed by replacing the per-character escape with strict shape validation: .op must match the parser's control-operator allowlist; { op: 'glob', pattern } validates pattern and forbids line terminators; { comment } validates comment and forbids line terminators; any other object shape throws TypeError.

AI 심층 분석

공격 시나리오 · 재현 가능한 PoC 페이로드 · 즉시 적용 가능한 차단 패치를 한 번에 받아 보세요. 보안 운영팀이 그대로 점검·티켓팅에 쓸 수 있는 형태로 정리해 드립니다.

참고 자료 30

링크 내용 불러오는 중…