NGINX - CVE-2026-9256

Date de publication :

Il s'agit d'une vulnérabilité de débordement de tampon en tas dans le module ngx_http_rewrite_module de NGINX.

NGINX est un serveur web, reverse proxy et équilibreur de charge haute performance, utilisé massivement comme frontal HTTP/HTTPS, passerelle API et proxy de terminaison TLS. Il existe en version open source et en version commerciale NGINX Plus, qui ajoute des fonctionnalités de supervision, de haute disponibilité et d'API de gestion dynamique.

Elle est déclenchée lorsqu'une directive rewrite utilise des captures PCRE imbriquées chevauchantes distinctes combinées à une chaîne de remplacement référençant plusieurs de ces captures dans un contexte de redirection. Lors du traitement d'une requête HTTP forgée, le processus worker alloue un tampon heap de taille insuffisante et y écrit au-delà de ses limites. Sur les systèmes où l'ASLR est désactivé ou contournable, ce débordement peut être exploité pour exécuter du code. L'exploitation dépend de la configuration rewrite présente sur l'instance cible.

Elle permet à un attaquant distant non authentifié de provoquer un redémarrage du processus worker ou, sur les systèmes sans ASLR, d'exécuter du code arbitraire à distance.

Informations

La faille est activement exploitée : Non

Un correctif existe : Oui

Une mesure de contournement existe : Oui

Risques

•   Exécution de code arbitraire (à distance)
•   Déni de service (à distance)

Exploitation

La vulnérabilité exploitée est du type
CWE-122 : Heap-based Buffer Overflow

Détails sur l'exploitation
•   Vecteur d'attaque : Réseau
•   Complexité de l'attaque : Élevée
•   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
Actuellement, aucune preuve de concept n'est disponible en sources ouvertes.

Systèmes ou composants affectés

•   NGINX Open Source versions 0.1.17 jusqu'à 1.31.0 inclus (versions 0.x en fin de support technique, non corrigées)
•   NGINX Plus version 37.0.0 (branche 37.x)
•   NGINX Plus versions R32 jusqu'à R36 (branches R32 à R36)
•   NGINX Instance Manager versions 2.17.0 jusqu'à 2.22.0 inclus
•   NGINX App Protect WAF versions 4.10.0 jusqu'à 4.16.0 et versions 5.2.0 jusqu'à 5.8.0 inclus
•   NGIN.0 jusqu'à 4.7.0 inclus
•   NGINX Gateway Fabric versions 1.3.0 jusqu'à 1.6.2 et versions 2.0.0 jusqu'à 2.6.1 inclus
•   NGINX Ingress Controller versions 3.5.0 jusqu'à 3.7.2, versions 4.0.0 jusqu'à 4.0.1, et versions 5.0.0 jusqu'à 5.4.2 inclus
•   F5 WAF for NGINX versions 5.9.0 jusqu'à 5.13.0 inclus
•   F5 DoS for NGINX version 4.9.0

Contournement provisoire

Remplacer les captures PCRE sans nom ($1, $2) par des captures nommées dans toutes les directives rewrite affectées de la configuration NGINX.

Solutions ou recommandations

•   NGINX Open Source versions 1.31.1 ou supérieure (branche 1.x stable).
•   NGINX Open Source versions 1.30.2 ou supérieure (branche 1.30.x).
•   NGINX Plus versions 37.0.1.1 ou supérieure (branche 37.x).
•   NGINX Plus versions R36 P5 ou supérieur (branche R36), ou R32 P7 ou supérieur (branche R32).
•   NGINX Instance Manager, NGINX App Protect WAF, NGINX App Protect DoS, NGINX Gateway Fabric, NGINX Ingress Controller, F5 WAF for NGINX et F5 DoS for NGINX : aucune version corrigée disponible à ce jour selon l'éditeur, mettre à jour vers une version corrigée de la branche dès disponibilité.
•   Les branches NGINX Open Source 0.x (versions 0.1.17 à 0.9.7) sont en fin de support technique et ne seront pas corrigées.