CVE-2026-9277
shell-quote quote() не проверяет форму объектных токенов, что позволяет внедрение команд через терминаторы строк в .op
- Опубликовано
- 22 мая 2026 г.
- Обновлено
- 14 сент. 2026 г.
- Назначение CNA
- harborist
- Наблюдены доказательства
- 17 авг. 2026 г.
Первичный 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 %
- Дата модели
- 21 сент. 2026 г.
EPSS – это статистическая оценка, а не достоверность или мера воздействия. Объедините это с CVSS, статусом KEV, воздействием и вашей средой.
Резюме
# Уязвимость в `quote()` функции shell-quote Функция `quote()` в shell-quote не проверяла входные объектные токены на соответствие модели операторов, используемой в `parse()`. Поле `.op` экранировалось обратным слешем посимвольно с помощью `/(.)/g`, которое в JavaScript не сопоставляется с терминаторами строк (\n, \r, U+2028, U+2029). Таким образом, терминатор строки в `.op` проходил без экранирования в выходные данные; POSIX-оболочки трактуют литеральный перевод строки как разделитель команд, поэтому любой контент после него выполнялся бы как вторая команда. Уязвимый путь кода достижим двумя способами: (1) прямое создание `{ op: '...\n...' }` из внешнего ввода, и (2) через `parse(cmd, envFn)`, когда `envFn` возвращает объектные токены, чей `.op` подвержен влиянию атакующего. Оба способа являются документированной частью API. Исправлено заменой посимвольного экранирования на строгую проверку структуры: `.op` должен соответствовать разрешённому списку управляющих операторов парсера; `{ op: 'glob', pattern }` проверяет `pattern` и запрещает терминаторы строк; `{ comment }` проверяет `comment` и запрещает терминаторы строк; любая другая структура объекта вызывает `TypeError`.
Источники
1Эксплойт proof-of-concept для CVE-2026-9277, уязвимости внедрения команд в библиотеке shell-quote. Выполняет рекурсивный обход JSON с комбинаторной мутацией для запуска RCE, поддерживает OOB-верификацию и ведение журнала без шума.
Ответственное использование
Используйте информацию об уязвимостях только в тех системах, которыми вы владеете или имеете право тестировать. Kitploit ссылается на метаданные общедоступных исследований и не хранит код эксплойта или вредоносные полезные данные.