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

LiquidJS: проверка роста времени фильтра strip_html

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

Защитная инструкция по LiquidJS и ghsa-r7g9-xpmj-5fcq: применимость, безопасный тест «временную сложность regex внутри фильтра strip_html», измеримый исход, stop-rule и обезличенный пакет поддержки.

Карта применимости для LiquidJS

Проверяемая граница — временную сложность regex внутри фильтра strip_html. Сначала запишите версию исполняемого компонента, digest сборки, способ установки и включённую функцию. Источник задаёт диапазон «npm:liquidjs < 10.26.0 → fixed 10.26.0», но lockfile без runtime provenance не определяет состояние сервиса. Отдельно ответьте, достижим ли путь в текущей конфигурации и кем. Если хотя бы одно звено не доказано, статус остаётся unknown. Severity advisory не переносится автоматически на конкретное развёртывание и не подтверждает эксплуатацию.

Факты и границы ghsa-r7g9-xpmj-5fcq

Reviewed record опубликован 2026-05-27, обновлён 2026-07-09 и описывает отдельную проблему: специальная HTML-подобная строка может давать квадратичный backtracking при strip_html. Указанные package ranges: «npm:liquidjs < 10.26.0 → fixed 10.26.0». Прямая upstream-страница подтверждает проект происхождения, а не установленную у вас версию. Дата, механизм и исправленная граница берутся из advisory; форум, новостной заголовок и поисковый сниппет служат только лидами. Из этих источников нельзя выводить популярность запроса, факт атаки, ущерб, индексирование или позицию.

Диагностическая модель: временную сложность regex внутри фильтра strip_html

Каждый размер выполняется в чистом процессе после одинакового прогрева. CPU time отделяют от wall time, чтобы шум среды не выглядел backtracking. Нормальный HTML подтверждает работу filter. Fixture не содержит template expressions и пользовательского контента: проверяется только форма delimiters, необходимая для измерения сложности.

Один обратимый опыт

В одноразовой среде нужно в новых дочерних процессах обработать четыре коротких synthetic input с удвоением незавершённых тегов и рядом корректный HTML той же длины. До запуска задайте предел времени, CPU, памяти, файлов и число запросов; снимите baseline и команду cleanup. Ожидаемое защитное наблюдение: рост CPU time остаётся в заданном коэффициенте или обработка прерывается лимитом без зависания parent. Используются только marker-объекты, test identities и loopback либо закрытая namespace. Запрещены production tokens, журналы, документы, реальные адреса и сторонние endpoints. Опыт не расширяют после первого граничного результата и обязательно повторяют normal control.

Как принять решение по измерению

Основной артефакт — input length / delimiter count / CPU time / wall time / outcome / version. Passed требует ожидаемого отказа или ограничения на граничной ветви, успешного normal control и возврата ресурсов к baseline. Failed фиксируют только после воспроизводимого расхождения с тем же fixture. Not-applicable требует доказанной версии вне range или недостижимой функции; отсутствие наблюдения не подходит. Unknown сохраняют при неясной сборке, нестабильном стенде или неполном trace. Такая матрица отделяет проверяемый механизм от обычной несовместимости и не превращает предположение в факт.

Обновление, stop-rule и безопасная передача

Жёсткое правило остановки: не запускать следующий размер после превышения коэффициента или timeout. Если версия попадает в advisory range, обновление берут из доверенного канала проекта и повторяют тот же fixture с прежними лимитами; другой сценарий не доказывает исправление. Затем выполняют normal control и проверяют rollback criterion. Для поддержки достаточно runtime version, digest, конфигурационной ветви, expected/observed, resource limits, статуса и хэшей synthetic fixtures. Удалите cookies, credentials, IP, внутренние имена, абсолютные пути и содержимое данных. Материал не является эксплуатационной инструкцией и не обещает нулевой риск.

Материал подготовлен редакцией VOne с помощью ИИ, затем вручную проверен по двум прямым HTTPS-источникам; факты, диапазоны версий, безопасный опыт и отсутствие рекламных обещаний сверены человеком.

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

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

Ответы

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

Ваш ответ

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

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

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