CVE-2026-118772
Publiée le 2026-10-29 · Dernière modification le 2026-10-30
Joi est une bibliothèque de validation de données JavaScript populaire, utilisée pour s'assurer que les entrées correspondent à un format spécifique. Les versions 17.1.1 à 17.13.8 ainsi que la version 18.3.0 sont affectées par une faille dans la règle de validation des e-mails lorsque l'option `multiple: true` est activée. La bibliothèque utilise une expression régulière inefficace pour fractionner les chaînes de caractères, ce qui force le processeur à effectuer une quantité exponentielle de travail lors du traitement de longues séquences d'espaces.
Un attaquant peut exploiter cela en envoyant, via une requête réseau, une chaîne d'espaces très longue et spécialement conçue, ce qui bloque la boucle d'événements de Node.js et entraîne un déni de service (DoS). Cela impacte la disponibilité en empêchant le serveur de traiter toute autre requête légitime. L'attaque est facile à exécuter car elle ne nécessite aucune authentification, aucune interaction de l'utilisateur et peut être réalisée à distance.
DÉTAIL DU VECTEUR CVSS
RÉFÉRENCES
Description officielle du NVD (en anglais)
joi is a schema description language and data validator for JavaScript. From 17.1.1 until 17.13.9 and 18.3.1, the Joi.string().email({ multiple: true }) rule uses a separator regular expression whose leading whitespace quantifier is retried at every position in a long whitespace run that contains no separator, causing quadratic work during String.prototype.split. The behavior applies to the default separator and every custom separator. Applications that validate attacker-controlled values with the multiple option and no effective prior length limit can have the Node.js event loop blocked for seconds by one request, preventing other work. A .max() rule is not sufficient when abortEarly: false allows the email rule to run after the maximum-length check fails. This vulnerability is fixed in versions 17.13.9 and 18.3.1.