Picomatch - это глобковый спитер, написанный JavaScript. Версии до 4.0.4, 3.0.2 и 2.3.2 уязвимы для регулярного отказа в выдаче экспрессии …
Picomatch - это глобковый спитер, написанный JavaScript. Версии до 4.0.4, 3.0.2 и 2.3.2 уязвимы для регулярного отказа в выдаче экспрессии (ReDoS) при обработке созданных моделей экстглобов. Определенные шаблоны, использующие кванторы экстглоба, такие как `+()` и `*()`, особенно в сочетании с перекрывающимися альтернативами или вложенными гастрольбами, компилируются в регулярные выражения, которые могут проявлять катастрофическое откат назад при несоответствующих входных данных. Приложения подвергаются воздействию, когда они позволяют ненадежным пользователям поставлять глобовые шаблоны, которые передаются в «пикоматч» для компиляции или сопоставления. В этих случаях злоумышленник может вызвать чрезмерное потребление процессора и заблокировать цикл событий Node.js, что приводит к отказу в обслуживании. Приложения, которые используют только доверенные, контролируемые разработчиками глобовые шаблоны, гораздо реже подвергаются воздействию в зависимости от безопасности способом. Эта проблема исправлена в пикомтах 4.0.4, 3.0.2 и 2.3.2. Пользователи должны обновиться до одной из этих версий или позже, в зависимости от их поддерживаемой линейки релиза. Если модернизация невозможна сразу, избегайте передачи ненадежных глобовых моделей в «пикоматч». Возможные меры по смягчению включают отключение поддержки extglob для ненадежных моделей с использованием `noextglob: true: отказ или дезинфицирующие шаблоны, содержащие вложенные глюки или квалификаторы экстглобов, такие как `+()` и `*()`, обеспечение строгого списков разрешений для принятого синтаксиса шаблона, выполнение сопоставления в изолированном рабочем или отдельном процессе с ограничениями по времени и ресурсам, и применение запроса на зад.Глобовые паттерны.
Продукт использует регулярное выражение с неэффективной, возможно экспоненциальной вычислительной сложностью в худшем случае, что ведёт к избыточному потреблению ресурсов CPU.
https://cwe.mitre.org/data/definitions/1333.html →Открыть в коллекции CWE →Злоумышленник может реализовать атаку на программу, использующую неэффективную реализацию регулярных выражений (Regex), подобрав входные данные, приводящие к крайне неблагоприятному сценарию работы Regex. Типичный крайний сценарий характеризуется экспоненциальным временем работы относительно размера входных данных. Это объясняется тем, что большинство реализаций использует недетерминированный конечный автомат (NFA) в качестве основы алгоритма Regex, поскольку NFA допускает обратный просмотр и тем самым поддерживает более сложные регулярные выражения.
https://capec.mitre.org/data/definitions/492.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| node-anymatch | Отслеживается | |
| node-anymatch | Отслеживается | |
| node-anymatch | Отслеживается | |
| node-anymatch | Отслеживается | |
| picomatch | * | Отслеживается |