CVE-2026-116795
RE2JS: Quadratic-time denial of service in re2js lookbehind matching
Что произошло
RE2JS is the JavaScript port of RE2, a regular expression engine that provides linear time matching. From 2.2.0 until 2.8.7, enabling LOOKBEHINDS and using repeated matching through matcher().find(), matchAll(), split(), or matcher().replaceAll() can cause quadratic total work. Machine.match restarts lookbehind scanning from offset zero for each requested start position, while Matcher-based APIs request capture slots that prevent the early exit used for captureless matching. Dense matches therefore repeatedly rescan the input, allowing attacker-influenced text to monopolize a single-threaded worker and deny service. This issue is fixed in version 2.8.7.
Что это значит
В источнике описана ошибка безопасности в перечисленных продуктах. Фактический риск зависит от установленной версии, конфигурации и доступности компонента; проверьте условия в первичном бюллетене.
Что делать
1. Проверьте, затронуты ли вы
Соберите инвентаризацию и сравните с таблицей затронутых версий. Эти команды только показывают установленные компоненты и сами по себе не доказывают наличие CVE.
dpkg-query -W -f='${Package} ${Version}\n'rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}\n'Get-HotFix | Select-Object HotFixID, InstalledOn
2. Установите исправление
Сверьте точный продукт и версию с бюллетенем вендора. Установите указанное в нём исправление после резервного копирования и проверки совместимости. Подтверждённая целевая версия в источниках отсутствует.
3. Временные меры
До проверки бюллетеня ограничьте доступ к затронутому компоненту доверенными узлами. Оцените сегментацию и отключение ненужных интерфейсов с владельцем сервиса; универсального правила WAF для этой CVE не подтверждено.
4. Проверьте следы эксплуатации
Проверьте аномальные входы, новые учётные записи, ошибки и необычные дочерние процессы в затронутом сервисе. Публичные проверенные правила обнаружения не включены в запись; отсутствие сигналов не доказывает отсутствие компрометации.
5. После исправления
- Проверьте фактическую версию и результат установки по бюллетеню.
- При необходимости перезапустите сервисы в согласованное окно.
- Повторите проверку сканером и функциональные проверки.
- Зафиксируйте результат, дату, владельца и оставшийся риск.
Продукты и затронутые версии
le0pard / re2js
{
"status": "affected",
"version": ">= 2.2.0, < 2.8.7"
}re2js npm
Диапазон источника: >= 2.2.0, < 2.8.7
Первая исправленная версия по источнику: 2.8.7
re2js npm
{
"status": "affected",
"version": "*",
"versionEndExcluding": "2.8.7",
"versionStartIncluding": "2.2.0"
}CVSS: оценки и векторы
CVSS 3.1 · cve7.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS 3.1 · security-advisories@github.com7.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS 3.1 · ghsa7.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Источники и ссылки
Происхождение полей
{
"cwes": [
"cve",
"ghsa",
"nvd"
],
"epss": {
"source": "epss",
"received_at": "2026-11-03T21:11:59.495790+00:00"
},
"title": {
"source": "cve",
"received_at": "2026-11-02T20:26:17.757298+00:00"
},
"scores": [
"cve",
"ghsa",
"nvd"
],
"status": {
"source": "cve",
"received_at": "2026-11-02T20:26:17.757298+00:00"
},
"affected": [
"cve",
"ghsa",
"osv"
],
"published": {
"source": "cve",
"received_at": "2026-11-02T20:26:17.757298+00:00"
},
"solutions": [],
"percentile": {
"source": "epss",
"received_at": "2026-11-03T21:11:59.495790+00:00"
},
"references": [
"cve",
"ghsa",
"nvd",
"osv"
],
"description": {
"source": "cve",
"received_at": "2026-11-02T20:26:17.757298+00:00"
},
"workarounds": [],
"configurations": []
}Хронология записи
- Данные обновлены04.11.2026, 00:11
- Данные обновлены03.11.2026, 00:11
- Появилась ссылка на PoC02.11.2026, 23:26
- Данные обновлены02.11.2026, 15:15
- Данные обновлены02.11.2026, 00:10
- Данные обновлены31.10.2026, 11:57
- Данные обновлены30.10.2026, 16:57
- Данные обновлены29.10.2026, 03:58
- Появились сведения об исправлении29.10.2026, 00:30
- Опубликована28.10.2026, 21:30