FICHE CVE

CVE-2026-104150

Publiée le 2026-10-15 · Dernière modification le 2026-10-16

🇫🇷 EN BREF

Les versions d'AdonisJS HTTP Server antérieures aux versions 8.2.2 et 9.1.1 sont concernées. Ce package gère les requêtes HTTP au sein du framework AdonisJS. Une faille dans l'expression régulière `router.matchers.slug()` permet à un attaquant d'envoyer un « slug » long et spécialement conçu qui déclenche un retour en arrière quadratique (quadratic backtracking), provoquant une saturation du processeur.

Un attaquant peut provoquer un déni de service complet en bloquant la boucle d'événements de Node.js, empêchant ainsi le serveur de traiter d'autres requêtes ou les tests de disponibilité (health checks). Cette attaque est facile à exécuter car elle ne nécessite ni authentification, ni interaction de l'utilisateur, et peut être réalisée via le réseau. Étant donné que la correspondance des routes intervient avant les middlewares, les protections existantes de limitation de débit (rate-limiting) ou d'authentification n'arrêteront pas l'exploitation.

DÉTAIL DU VECTEUR CVSS

Vecteur d'attaqueRéseau
Complexité d'attaqueFaible
Prérequis d'attaqueAucun
Privilèges requisAucun
Interaction utilisateurAucune
Confidentialité (système vulnérable)Aucune
Intégrité (système vulnérable)Aucune
Disponibilité (système vulnérable)Élevée
Confidentialité (système subséquent)Aucune
Intégrité (système subséquent)Aucune
Disponibilité (système subséquent)Aucune

RÉFÉRENCES

Description officielle du NVD (en anglais)

AdonisJS HTTP Server is a package for handling HTTP requests in the AdonisJS framework. Prior to 8.2.2 and 9.1.1, the regular expression returned by router.matchers.slug() contains adjacent greedy repetitions with overlapping character classes. When an application applies this matcher to an attacker-controlled route parameter, a long slug ending in a character rejected by the final assertion causes quadratic backtracking and excessive CPU use. Route matching occurs before route and group middleware, so authentication or rate-limiting middleware attached to the route may not prevent an unauthenticated request from blocking the Node.js event loop and stopping the worker from serving unrelated requests or health checks. This issue is fixed in versions 8.2.2 and 9.1.1.