CVE-2026-116795
Publiée le 2026-10-28 · Dernière modification le 2026-11-02
RE2JS (versions 2.2.0 à 2.8.6) est un port JavaScript du moteur d'expressions régulières RE2, utilisé pour effectuer des correspondances de texte rapides en temps linéaire. La faille survient lorsque les « lookbehinds » (recherches arrières) sont activés et utilisés avec certaines fonctions de correspondance répétitive telles que `matchAll()` ou `split()`. Comme le moteur redémarre son analyse depuis le début pour chaque correspondance, une entrée spécifiquement conçue peut forcer le logiciel à effectuer une quantité massive de travail redondant.
Un attaquant peut exploiter cela pour déclencher un déni de service (DoS) en fournissant une chaîne de caractères malveillante qui monopolise le processeur, gelant ainsi l'application. Il s'agit d'un risque de disponibilité à fort impact qui ne nécessite ni authentification ni interaction de l'utilisateur. Puisqu'il peut être déclenché via un réseau, tout service public utilisant une version affectée de RE2JS est vulnérable à cette attaque par épuisement des ressources.
DÉTAIL DU VECTEUR CVSS
RÉFÉRENCES
Description officielle du NVD (en anglais)
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.