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

RE2 global match: обязательный прогресс после пустого совпадения

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

Защитная диагностика RE2 global match: обязательный прогресс после пустого совпадения по GHSA-6hxr-mr5r-9836: runtime inventory, bounded regression, измеримый verdict, красная линия и пакет данных для владельца.

Ответ и граница применимости — RE2 global match: обязательный прогресс после пустого совпадения

Задача этой страницы — проверить advancement invariant String.prototype.match для empty-matchable pattern. Сначала подтвердите фактически загруженный re2, его digest, диапазон «npm:re2 <= 1.25.1; first patched 1.25.2» и включённый entry point. Затем нужен только ограниченный regression: Matcher adapter вызвать на строке из 1–2 символов; native result allocation заменить counter и cap iterations=4. Боль: пустое совпадение может не сдвинуть lastIndex и бесконечно накапливать результаты. Итоговый артефакт: iteration / match span / lastIndex / native allocations / verdict. GHSA GHSA-6hxr-mr5r-9836 задаёт проверяемый ориентир, но не доказывает состояние вашей установки.

Карта решения — RE2 global match: обязательный прогресс после пустого совпадения

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

Подготовка безопасного стенда — RE2 global match: обязательный прогресс после пустого совпадения

Соберите temp directory, in-memory repository/cache либо pure adapter. Примените протокол: Matcher adapter вызвать на строке из 1–2 символов; native result allocation заменить counter и cap iterations=4. Используйте короткие canary labels; пользовательские записи, токены, IP, реальные конфиги, production routes и environment dump запрещены. Network, shell, database, filesystem, browser и session issuance замените spies. До control сохраните hash fixture и нулевые counters.

Control и одна переменная — RE2 global match: обязательный прогресс после пустого совпадения

Разрешённый control подтверждает, что harness достигает нужной ветки. Boundary-case меняет ровно один параметр и обязан остановиться до состояния «пустое совпадение может не сдвинуть lastIndex и бесконечно накапливать результаты». Сохраните поля iteration / match span / lastIndex / native allocations / verdict, reason code и monotonic duration. После пустого match индекс продвигается по Unicode-aware rule; отсутствие прогресса завершает цикл контролируемой ошибкой. Не наращивайте размер/глубину после первого превышения и не используйте эксплуатационные payload.

Вердикт без догадок — RE2 global match: обязательный прогресс после пустого совпадения

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

Красная линия и восстановление — RE2 global match: обязательный прогресс после пустого совпадения

Немедленный стоп: две итерации подряд имеют тот же index/span либо allocation продолжается. После стопа не повторяйте проверку с большим вводом. Верните disposable state к исходному hash, освободите объекты и выполните один benign control. Ненулевой неожиданный counter сети, процессов, файлов, записей или сессий блокирует PASS и фиксируется отдельно.

Почему нужен отдельный материал — RE2 global match: обязательный прогресс после пустого совпадения

Даёт bounded state-machine без большого subject. Не Unicode bounds lastIndex: здесь progress invariant после zero-length match. Поэтому механическая замена framework, ОС или устройства не создаёт новый URL. Практическая самостоятельность выражена в deliverable «iteration / match span / lastIndex / native allocations / verdict» и в инварианте: После пустого match индекс продвигается по Unicode-aware rule; отсутствие прогресса завершает цикл контролируемой ошибкой. Совпадающий старый intent должен стать update/merge-кандидатом.

Минимальный handoff — RE2 global match: обязательный прогресс после пустого совпадения

Передайте владельцу GHSA GHSA-6hxr-mr5r-9836, runtime digest, границу «npm:re2 <= 1.25.1; first patched 1.25.2», entry point, sanitized config, control/boundary rows, counters, verdict, stop reason и cleanup proof. Advisory опубликована 2026-07-31, обновлена 2026-07-31; эти даты отражают свежесть источника, а не популярность запроса или факт эксплуатации. После remediation повторите тот же fixture и сравните state transition.

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

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

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

Ответы

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

Ваш ответ

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

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

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