CVE-2026-102422 in shell-quote
요약
\~에 의해 VulDB • 2026. 09. 29.
shell-quote의 `quote()` 함수는 `{ comment }` 토큰을 `#` 기호에 이어 그 텍스트를 출력하는 방식으로 처리하며, 이는 쉘 줄의 나머지 부분을 주석으로 처리합니다. 이 과정에는 이후 문자열 토클의 여는 따옴표도 포함됩니다. 따라서 해당 후속 문자열 내에 라인 종결자(\n, \r, U+2028, U+2029)가 존재하면 주석이 종료되고, 문자열의 나머지는 쉘 입력으로 파싱됩니다: `quote(['echo', 'ok', { comment: 'x' }, 'a\nid;#'])`는 sh, bash, dash, ksh 및 zsh에서 `id` 명령을 실행합니다. `parse()` 함수는 단어 중간에 있는 `#`(예: `http://example.com/#frag`)에 대해 주석 토큰을 생성하므로, `quote(parse(untrustedCommand).concat(untrustedArg))`와 같이 `parse()`의 출력 결과를 다른 신뢰할 수 없는 문자열과 결합하는 호출자는 영향을 받습니다. CVE-2026-9277에 대한 수정은 주석 자체 텍스트 내의 라인 종결자만 거부했지만, 그 이후 토큰 내의 라인 종결자는 거부하지 않았습니다. 버전 1.11.0에서 해결됨: `{ comment }` 토큰 뒤에 오는 문자열에 라인 종결자가 포함된 경우 `quote()`는 `TypeError`를 발생시킵니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.