OpenJS - CVE-2026-14198

Date de publication :

Il s'agit d'une vulnérabilité de conflit d'interprétation entre @fastify/middie et le routeur Fastify.

@fastify/middie est un plugin officiel de l'écosystème Fastify qui intègre des middlewares compatibles Express ou Connect au sein d'applications construites avec le framework Node.js Fastify.

Le module décode le slash encodé %2F d'un paramètre de chemin avant de le comparer aux règles de middleware. Le routeur, lui, conserve cet encodage lors de l'exécution du gestionnaire final. Cette divergence de canonicalisation permet à une URL forgée d'échapper au middleware tout en atteignant le gestionnaire protégé. Aucune authentification n'est requise.

Elle permet de contourner des middlewares d'authentification, d'autorisation, de limitation de débit ou d'audit appliqués sur des chemins paramétrés.

Informations

La faille est activement exploitée : Non

Un correctif existe : Oui

Une mesure de contournement existe : Oui

Risques

Contournement de la politique de sécurité

Exploitation

La vulnérabilité exploitée est du type
CWE-436 : Interpretation Conflict

Détails sur l'exploitation
•   Vecteur d'attaque : Réseau
•   Complexité de l'attaque : Faible
•   Privilèges nécessaires pour réaliser l'attaque : Aucun
•   Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Non
•   L'exploitation de la faille permet d'obtenir des droits privilégiés : Non

Preuve de concept
Une preuve de concept est disponible en sources ouvertes.

Systèmes ou composants affectés

@fastify/middie versions 9.1.0 jusqu'à 9.3.2

Contournement provisoire

•   Éviter l'utilisation de chemins de middleware paramétrés pour des décisions de sécurité.
•   Appliquer les contrôles d'authentification ou d'autorisation directement dans le gestionnaire de route, ou via un hook Fastify exécuté après résolution de la route (par exemple preHandler).

Solutions ou recommandations

@fastify/middie versions 9.3.3 et supérieures.