К обсуждениям

EnvoyExtensionPolicy Lua: проверка нормализации пути до security policy

Редакция VOne Технологии

Защитная диагностика EnvoyExtensionPolicy Lua: проверка нормализации пути до security policy по GHSA-wcrf-9vrr-854f: runtime inventory, bounded regression, измеримый verdict, красная линия и пакет данных для владельца.

Ответ и граница применимости — EnvoyExtensionPolicy Lua: проверка нормализации пути до security policy

Задача этой страницы — проверить что Envoy Gateway нормализует повторные разделители и dot segments до проверки запрещённых путей Lua policy. Сначала подтвердите фактически загруженный github.com/envoyproxy/gateway, его digest, диапазон «Go:github.com/envoyproxy/gateway >= 1.8.0-rc.0, < 1.8.1; first patched 1.8.1 | Go:github.com/envoyproxy/gateway >= 0, < 1.7.4; first patched 1.7.4» и включённый entry point. Затем нужен только ограниченный regression: Вызвать только функцию нормализации на коротких synthetic path descriptors; file reader и Lua runtime заменить spies. Боль: лексически отличный путь может пройти policy, хотя файловая система интерпретирует его как тот же критический путь. Итоговый артефакт: матрица raw path / normalized path / policy verdict / filesystem call с доказательством запрета до чтения. GHSA GHSA-wcrf-9vrr-854f задаёт проверяемый ориентир, но не доказывает состояние вашей установки.

Карта решения — EnvoyExtensionPolicy Lua: проверка нормализации пути до security policy

Разделите путь на Source → Parse/Normalize → Policy → Side effect. Специальная инварианта материала: Один canonical path должен поступить и в policy, и в filesystem adapter; две независимые нормализации считаются расхождением. На каждой границе укажите представление данных, владельца решения и counter. Candidate становится NOT_APPLICABLE только при доказанном отсутствии package или entry point; неизвестная runtime-версия означает UNKNOWN, а не безопасность.

Подготовка безопасного стенда — EnvoyExtensionPolicy Lua: проверка нормализации пути до security policy

Соберите temp directory, in-memory repository/cache либо pure adapter. Примените протокол: Вызвать только функцию нормализации на коротких synthetic path descriptors; file reader и Lua runtime заменить spies. Используйте короткие canary labels; пользовательские записи, токены, IP, реальные конфиги, production routes и environment dump запрещены. Network, shell, database, filesystem, browser и session issuance замените spies. До control сохраните hash fixture и нулевые counters.

Control и одна переменная — EnvoyExtensionPolicy Lua: проверка нормализации пути до security policy

Разрешённый control подтверждает, что harness достигает нужной ветки. Boundary-case меняет ровно один параметр и обязан остановиться до состояния «лексически отличный путь может пройти policy, хотя файловая система интерпретирует его как тот же критический путь». Сохраните поля матрица raw path / normalized path / policy verdict / filesystem call с доказательством запрета до чтения, reason code и monotonic duration. Один canonical path должен поступить и в policy, и в filesystem adapter; две независимые нормализации считаются расхождением. Не наращивайте размер/глубину после первого превышения и не используйте эксплуатационные payload.

Вердикт без догадок — EnvoyExtensionPolicy Lua: проверка нормализации пути до security policy

PASS: runtime и entry point подтверждены, control прошёл, boundary остановлен до side effect, cleanup доказан. FAIL: та же provenance и наблюдаемый запрещённый counter/state. UNKNOWN: нет digest, конфигурации, control, точки наблюдения или восстановления. NOT_APPLICABLE: компонент либо функция доказанно отсутствуют. Номер patched release без runtime readback не является PASS.

Красная линия и восстановление — EnvoyExtensionPolicy Lua: проверка нормализации пути до security policy

Немедленный стоп: filesystem spy вызван до policy verdict, normalizer оставил повторный разделитель либо dot segment. После стопа не повторяйте проверку с большим вводом. Верните disposable state к исходному hash, освободите объекты и выполните один benign control. Ненулевой неожиданный counter сети, процессов, файлов, записей или сессий блокирует PASS и фиксируется отдельно.

Почему нужен отдельный материал — EnvoyExtensionPolicy Lua: проверка нормализации пути до security policy

Даёт безопасный pure-function regression без чтения реальных файлов, секретов или запуска Lua. Не общий path traversal и не SSRF: отдельная граница порядка normalize-before-policy в EnvoyExtensionPolicy Lua. Поэтому механическая замена framework, ОС или устройства не создаёт новый URL. Практическая самостоятельность выражена в deliverable «матрица raw path / normalized path / policy verdict / filesystem call с доказательством запрета до чтения» и в инварианте: Один canonical path должен поступить и в policy, и в filesystem adapter; две независимые нормализации считаются расхождением. Совпадающий старый intent должен стать update/merge-кандидатом.

Минимальный handoff — EnvoyExtensionPolicy Lua: проверка нормализации пути до security policy

Передайте владельцу GHSA GHSA-wcrf-9vrr-854f, runtime digest, границу «Go:github.com/envoyproxy/gateway >= 1.8.0-rc.0, < 1.8.1; first patched 1.8.1 | Go:github.com/envoyproxy/gateway >= 0, < 1.7.4; first patched 1.7.4», entry point, sanitized config, control/boundary rows, counters, verdict, stop reason и cleanup proof. Advisory опубликована 2026-07-16, обновлена 2026-07-16; эти даты отражают свежесть источника, а не популярность запроса или факт эксплуатации. После remediation повторите тот же fixture и сравните state transition.

Материал подготовлен редакцией VOne с помощью автоматизированного черновика; версии, даты, границы и ссылки вручную сверены по GitHub Advisory Database и прямой upstream-странице. Текст самостоятельный, не копирует источник и не содержит эксплуатационных шагов.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.