
CVE-2026-42945
Débordement de tampon critique basé sur le tas dans NGINX
CVE-2026-42945 (également connue sous le nom de Faille NGINX) est une vulnérabilité de sécurité critique dans le module ngx_http_rewrite_module de NGINX.
La vulnérabilité provient d'un calcul incohérent de la taille du tampon entre la phase de vérification de la longueur et la phase réelle de copie/échappement lors du traitement des règles de réécriture d'URI.
| Statut | Versions |
|---|---|
| Affecté | 0.6.27 → 1.30.0 |
| Corrigé | 1.30.1 et 1.31.0+ |
| Statut | Versions |
|---|---|
| Affecté | R32 → R36 |
| Corrigé | R36 P4, R32 P6, 37.0.0+ |
Note: De nombreux produits F5 NGINX (Ingress Controller, App Protect, Gateway Fabric, etc.) sont affectés s'ils fonctionnent sur des versions de base vulnérables.
Le bug est déclenché par une combinaison spécifique de directives :
rewrite dont la chaîne de remplacement contient un ? (active le drapeau is_args).rewrite, if ou set qui utilise des captures PCRE non nommées ($1, $2, etc.).is_args = false) → sous-estime la taille de tampon requise.is_args = true) → appelle ngx_escape_uri() avec NGX_ESCAPE_ARGS.+, &, %, etc.) dans l'URI provoque un débordement de tas.| Impact | Sévérité | Description |
|---|---|---|
Score CVSS v4.0 : 9.2 (Critique)
Score CVSS v3.1 : 8.1 (Élevé)
Remplacer les captures non nommées par des captures nommées :
rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
rewrite ^/users/(?<user_id>[0-9]+)/profile/(?<section>.*)$ /profile.php?id=$user_id&tab=$section last;
Recommandation clé : Auditer toutes les règles de réécriture qui combinent des chaînes de remplacement contenant ? et l'utilisation ultérieure de $1, $2, etc.
CVE-2026-42945 est l'une des vulnérabilités NGINX les plus significatives de ces dernières années en raison de sa longue existence, de sa facilité d'exploitation et de son potentiel d'exécution de code à distance (RCE).
Agissez maintenant — corrigez vos instances et mettez à jour vos configurations.
Fait avec ❤️ pour la communauté de la sécurité
| Élevée |
| Crash fiable du processus worker |
| Exécution de code à distance | Critique (conditionnel) | Possible lorsque l'ASLR est désactivé ou contourné |
| Complexité de l'attaque | Faible | Requête HTTP unique, pas d'authentification |