Une expression régulière utilisée pour séparer plusieurs adresses e-mail peut entraîner un traitement quadratique lorsqu’une longue séquence d’espaces ne contient pas de séparateur. Une requête spécialement construite peut alors bloquer la boucle d’événements Node.js.
Source : NVD — CVE-2026-118772
Analyse technique
Le coût quadratique concerne l’option multiple et le séparateur par défaut ou personnalisé. Une règle .max() seule peut ne pas suffire si abortEarly: false laisse l’évaluation de la règle e-mail se poursuivre.
Impact, versions et correctif
Détection / vérification
Repérer l’usage de Joi.string().email({ multiple: true }) sur des valeurs contrôlables par un utilisateur, notamment sans limite de longueur appliquée avant l’évaluation de la règle.
Action recommandée
Mettre à niveau vers joi 17.13.9 ou 18.3.1, selon la branche utilisée, et appliquer une limite effective aux entrées non fiables.
Sources
Priorisation DFS : P3 · 1 source(s).