Защитная инструкция по Velocity.js и ghsa-7gfh-x38p-prh3: установить применимость, проверить фильтр опасных property-read в шаблоне на одноразовом стенде, измерить безопасный исход и подготовить обратимый выпуск без production-данных.
Карта применимости для Velocity.js
Advisory описывает отдельную проблему: чтение зарезервированной цепочки свойств может достигнуть Function constructor при недоверенном шаблоне. Проверяемая граница проходит между parser references, getAttributes и разрешёнными свойствами context. Диапазоны Reviewed record: npm:velocityjs <= 2.1.6 → 2.1.7. Lockfile служит подсказкой, но не заменяет digest реально запущенной сборки. Снимите версия velocityjs, origin template, AST node kinds, blocked property category, renderer exit и side-effect count. Для каждого элемента укажите observed, expected, unknown или not-applicable, время и происхождение. Severity critical не подтверждает атаку, ущерб либо состояние конкретного deployment. Если происхождение бинарника неизвестно, не делайте вывод по одному package manager.
Обратимый тест без эксплуатационного payload
Безопасный опыт: в отдельном Node subprocess передать mock-object и шаблон, который обращается к абстрактному запрещённому имени свойства без выражения, функции или команды. Опыт проводят в одноразовой среде и завершают после первого граничного случая. Измеримый безопасный исход: renderer отклоняет запрещённое чтение до вычисления, обычное поле mock-object выводится как текст. Не увеличивайте объём, глубину, число соединений или права после первого отклонения. Сохраняйте только decision code, counters, timings и hashes; реальные имена, адреса, credentials и пользовательские данные исключите. Красная линия: нужен Function constructor, eval, системная команда либо production template. При её достижении завершите стенд и оставьте результат blocked/unknown вместо попытки воспроизвести атаку.
Окно обновления и контроль регрессии
Зафиксируйте исходный dependency tree и артефакт, установите подтверждённую исправленную ветку из диапазона «npm:velocityjs <= 2.1.6 → 2.1.7» в staging и повторите тот же baseline/boundary/baseline набор. Не меняйте одновременно reverse proxy, role model, parser settings или OS: иначе нельзя связать результат с обновлением. Сравните latency, memory, accepted/rejected decisions и обычный функциональный сценарий. Временный containment снимают только после безопасного результата и готового возврата. Возврат для этой карточки: завершить subprocess, удалить fixture/cache, восстановить dependency lock.
Критерий закрытия и минимальный пакет
Карточка закрывается, когда версия и provenance подтверждены, граничный вход даёт ожидаемый отказ или безопасную обработку, обычный контроль проходит, cleanup завершён, а журнал не содержит новых warning/error. Минимальный пакет для поддержки: version, AST categories, denied property class, error type, stdout hash, side-effect count и cleanup. В нём не должно быть IP, tokens, passwords, cookies, private keys, полного config, реальных файлов или payload. Отдельной строкой укажите: GitHub Reviewed Advisory подтверждает механизм и диапазон, но не эксплуатацию в этой среде, популярность запроса, индексацию или позиции.
Матрица решений на защитной границе
Разложите сценарий на вход, policy/parser, защищаемый объект и наблюдаемый исход. Для Velocity.js это «между parser references, getAttributes и разрешёнными свойствами context». Ветвь close допустима, когда runtime вне указанных диапазонов или функция недостижима и это подтверждено. Ветвь update выбирают при совпавшей версии и доступном фиксированном артефакте. Ветвь contain оставляет узкое ограничение доступа до окна обновления. Ветвь escalate нужна при unknown provenance. Отчёт разделяет факт advisory, локальное наблюдение и вывод. Не объединяйте этот механизм с соседними advisory только из-за общего слова security.
Материал подготовлен редакцией VOne с помощью ИИ, затем вручную проверен по двум прямым HTTPS-источникам; факты, диапазоны версий, безопасный опыт и отсутствие рекламных обещаний сверены человеком.
Источники и проверка
- GitHub Reviewed Advisory ghsa-7gfh-x38p-prh3 проверено 2026-08-30
- Upstream-страница Velocity.js проверено 2026-08-30
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.