Защитная инструкция по Shescape и ghsa-w4hw-qcx7-56pr: установить применимость, проверить экранирование parentheses для Windows CMD на одноразовом стенде, измерить безопасный исход и подготовить обратимый выпуск без production-данных.
Карта применимости для Shescape
Advisory описывает отдельную проблему: parentheses в недоверенном аргументе могут изменить структуру CMD control block. Проверяемая граница проходит между user argument, Shescape escape/escapeAll и CMD parser grammar. Диапазоны Reviewed record: npm:shescape < 2.1.14 → 2.1.14; npm:shescape >= 3.0.0, < 3.0.1 → 3.0.1. Экспозиция считается только после сверки runtime и включённой функции. Снимите версия Shescape, configured shell, API, input character classes, escaped output, parser token count и child-process count. Для каждого элемента укажите observed, expected, unknown или not-applicable, время и происхождение. Severity critical не подтверждает атаку, ущерб либо состояние конкретного deployment. Если происхождение бинарника неизвестно, не делайте вывод по одному package manager.
Матрица решений на защитной границе
Разложите сценарий на вход, policy/parser, защищаемый объект и наблюдаемый исход. Для Shescape это «между user argument, Shescape escape/escapeAll и CMD parser grammar». Ветвь close допустима, когда runtime вне указанных диапазонов или функция недостижима и это подтверждено. Ветвь update выбирают при совпавшей версии и доступном фиксированном артефакте. Ветвь contain оставляет узкое ограничение доступа до окна обновления. Ветвь escalate нужна при unknown provenance. Unknown остаётся unknown и передаётся владельцу компонента. Не объединяйте этот механизм с соседними advisory только из-за общего слова security.
Обратимый тест без эксплуатационного payload
Безопасный опыт: на не-Windows CI использовать только официальную parser/unit fixture: передать строку с буквами и парой parentheses, проверить escape output без запуска cmd.exe. Перед опытом задайте числовой порог и один контрольный вход. Измеримый безопасный исход: parentheses neutralized согласно patched fixture, аргумент остаётся одним data token, child process не создаётся. Не увеличивайте объём, глубину, число соединений или права после первого отклонения. Сохраняйте только decision code, counters, timings и hashes; реальные имена, адреса, credentials и пользовательские данные исключите. Красная линия: запускается shell, строка содержит command/operator или тест использует production input. При её достижении завершите стенд и оставьте результат blocked/unknown вместо попытки воспроизвести атаку.
Окно обновления и контроль регрессии
Зафиксируйте исходный dependency tree и артефакт, установите подтверждённую исправленную ветку из диапазона «npm:shescape < 2.1.14 → 2.1.14; npm:shescape >= 3.0.0, < 3.0.1 → 3.0.1» в staging и повторите тот же baseline/boundary/baseline набор. Не меняйте одновременно reverse proxy, role model, parser settings или OS: иначе нельзя связать результат с обновлением. Сравните latency, memory, accepted/rejected decisions и обычный функциональный сценарий. Временный containment снимают только после безопасного результата и готового возврата. Возврат для этой карточки: удалить fixture/output, завершить Node process, вернуть package lock.
Критерий закрытия и минимальный пакет
Карточка закрывается, когда версия и provenance подтверждены, граничный вход даёт ожидаемый отказ или безопасную обработку, обычный контроль проходит, cleanup завершён, а журнал не содержит новых warning/error. Минимальный пакет для поддержки: version, shell option, API, input/output hashes, token count, child count и cleanup. В нём не должно быть IP, tokens, passwords, cookies, private keys, полного config, реальных файлов или payload. Отдельной строкой укажите: GitHub Reviewed Advisory подтверждает механизм и диапазон, но не эксплуатацию в этой среде, популярность запроса, индексацию или позиции.
Материал подготовлен редакцией VOne с помощью ИИ, затем вручную проверен по двум прямым HTTPS-источникам; факты, диапазоны версий, безопасный опыт и отсутствие рекламных обещаний сверены человеком.
Источники и проверка
- GitHub Reviewed Advisory ghsa-w4hw-qcx7-56pr проверено 2026-08-30
- Upstream-страница Shescape проверено 2026-08-30
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.