CVE-2026-42945 « NGINX Rift » (CVSS 9.2) est un débordement de tampon heap vieux de 18 ans dans le module ngx_http_rewrite_module de NGINX, permettant un DoS sans authentification et une RCE potentielle. PoC public disponible, exploitation active confirmée dès J+4.
En bref
- CVE-2026-42945 « NGINX Rift » (CVSS 9.2) : débordement de tampon heap dans le module ngx_http_rewrite_module de NGINX, présent depuis 18 ans, permettant un déni de service sans authentification et potentiellement une RCE sur les systèmes sans ASLR
- Systèmes affectés : NGINX Open Source 0.6.27 à 1.30.0, NGINX Plus R32 à R36, et tous les produits F5 dérivés (Ingress Controller, App Protect WAF, Gateway Fabric, Instance Manager)
- Action urgente : mettre à jour vers NGINX 1.30.1 (stable) ou 1.31.0 (mainline) ; NGINX Plus vers R32 P6 ou R36 P4 ; ou remplacer les captures PCRE non nommées par des captures nommées dans les configurations de réécriture
Les faits
Le 13 mai 2026, F5/NGINX a publié l'avis de sécurité K000161019 concernant CVE-2026-42945, baptisée « NGINX Rift » par ses découvreurs de DepthFirst AI. Cette vulnérabilité de type débordement de tampon heap (heap-based buffer overflow, CWE-122) affecte le module ngx_http_rewrite_module de NGINX dans toutes ses versions depuis 0.6.27, soit une faille dormante depuis environ 18 ans dans le codebase. Avec un score CVSS v4.0 de 9.2 (vecteur : CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N), la vulnérabilité est critique. La version CVSS v3.1 est évaluée à 8.1 High, avec une complexité d'attaque élevée reflétant les conditions de configuration requises, mais sans aucune authentification préalable.
La découverte de NGINX Rift est remarquable à plusieurs titres. Elle a été réalisée le 18 avril 2026 non pas par un chercheur humain traditionnel, mais par un scanner de vulnérabilités autonome basé sur un grand modèle de langage (LLM), développé par DepthFirst AI. Ce scanner a identifié une divergence de comportement subtile dans le module de réécriture d'URI qui avait échappé à toutes les revues de code humaines depuis 2008. La divulgation responsable a été effectuée auprès de F5 le 21 avril 2026, et les patches ont été publiés le 13 mai 2026 — soit 22 jours plus tard. Un proof-of-concept a été simultanément publié par DepthFirst AI au moment de la divulgation, démontrant un déni de service fiable et une chaîne d'exploitation RCE théorique.
Techniquement, la faille réside dans le mécanisme de traitement des directives rewrite par ngx_http_rewrite_module. Ce module opère en deux passes : une première passe calcule la taille du buffer de destination nécessaire à la réécriture d'URI, et une seconde passe copie les données dans ce buffer. Le bug est un défaut de gestion d'état entre ces deux passes. Quand une directive rewrite utilise une capture PCRE non nommée (les variables $1, $2, etc.) avec une chaîne de remplacement contenant un caractère ? (séparateur de query string), un flag interne nommé is_args reste incorrectement positionné après le traitement de cette directive. Si cette directive est suivie dans le même bloc location {} par une autre directive rewrite, if, ou set, une divergence apparaît entre les deux passes : la première passe calcule la taille du buffer en utilisant un algorithme d'échappement de caractères, mais la seconde passe écrit les données en utilisant un algorithme différent. Les caractères comme +, % et & s'expandent lors du ré-échappement en seconde passe, causant une écriture au-delà des limites du buffer heap alloué.
Trois conditions doivent être simultanément réunies pour déclencher la vulnérabilité : premièrement, la directive rewrite doit utiliser une capture PCRE non nommée ($1, $2, ...) dans la chaîne de remplacement ; deuxièmement, cette chaîne de remplacement doit contenir un caractère ? littéral ; troisièmement, cette directive doit être suivie dans le même bloc location {} par une autre directive rewrite, if, ou set. Ces conditions, bien que spécifiques, correspondent à des patterns de configuration courants dans les configurations NGINX de production, notamment pour les URL rewrites complexes, la gestion de query strings, et les redirections conditionnelles. Selon les analyses publiées par Picus Security et Axonius les 13-14 mai 2026, de nombreuses configurations de production typiques réunissent naturellement ces conditions sans que les administrateurs en soient conscients.
La chaîne d'exploitation RCE complète, nécessitant la désactivation de l'ASLR, comprend six étapes documentées dans le PoC de DepthFirst AI. Première étape : envoi d'une requête HTTP ciblant le bloc location vulnérable avec des caractères qui s'expandent lors du ré-échappement, déclenchant le débordement. Deuxième étape : corruption du pointeur de fonction cleanup dans une structure ngx_pool_t adjacente dans la heap — une cible de détournement de flux d'exécution. Troisième étape : utilisation de la technique du heap feng shui via deux connexions simultanées pour positionner les pools mémoire de façon adjacente et prévisible, évitant une corruption prématurée des métadonnées. Quatrième étape : injection de fausses structures ngx_pool_cleanup_t dans la heap via le corps de requêtes HTTP POST, permettant de placer des données contrôlées à une adresse connue. Cinquième étape : exploitation de l'architecture fork-based de NGINX, où tous les worker processes partagent le même layout mémoire virtuel après le fork(), pour brute-forcer les valeurs de pointeurs. Sixième étape : lors de la fermeture de la socket victime, ngx_destroy_pool() est appelée, déréférence le pointeur cleanup corrompu, et exécute la fonction contrôlée par l'attaquant.
Sur les systèmes avec ASLR activé — c'est-à-dire la quasi-totalité des systèmes Linux modernes — la chaîne RCE complète est difficile à réaliser de manière fiable. En revanche, le chemin d'exploitation DoS est immédiatement weaponisable et a été démontré de façon fiable par Orca Security le 15 mai 2026 sur Ubuntu avec NGINX 1.28.3 et toutes les mitigations modernes actives. Une seule requête GET contenant 349 octets de padding sûrs suivis de 2 000 caractères URI-encodables (+) déclenche un débordement heap de 4 000 octets, tuant instantanément le worker process NGINX ciblé. Trois requêtes consécutives de ce type ont suffi à éliminer tous les workers simultanément lors des tests d'Orca Security. NGINX relance automatiquement ses workers, mais une boucle de requêtes soutenue crash les processus plus vite qu'ils ne peuvent être relancés, constituant un déni de service persistant sans authentification.
L'impact potentiel de NGINX Rift est considérable compte tenu de l'omniprésence de NGINX dans l'infrastructure Internet mondiale. Selon les données Netcraft citées dans les analyses post-divulgation, NGINX gère environ 33 % de tous les sites web actifs globalement — faisant de cette vulnérabilité l'une des plus larges surfaces d'impact pour un serveur web depuis CVE-2019-0211 (Apache). La plage de versions affectées (0.6.27 à 1.30.0) couvre l'intégralité des releases NGINX sur 18 ans, ce qui signifie que pratiquement tout déploiement NGINX non mis à jour est potentiellement vulnérable si sa configuration réunit les trois conditions déclenchantes. Les distributions Linux majeures — AlmaLinux, RHEL, Debian, Ubuntu — ont déployé des mises à jour de paquets dès les 13-14 mai 2026 via leurs dépôts standard.
Le 17 mai 2026, VulnCheck a confirmé des tentatives d'exploitation actives détectées sur ses réseaux de honeypots, soit seulement quatre jours après la publication du patch et du PoC — un délai typiquement court entre divulgation et exploitation active pour une vulnérabilité de cette criticité. L'exploitation RCE sans ASLR reste réaliste dans plusieurs catégories d'environnements : systèmes embarqués, anciennes VMs de datacenter non migrées, et certains environnements conteneurisés avec configurations kernel réduites.
Impact et exposition
La vulnérabilité NGINX Rift touche toute organisation hébergeant un service NGINX (serveur web, reverse proxy, API gateway, équilibreur de charge) dont la configuration contient le pattern vulnérable dans un bloc location. L'impact DoS est immédiat et ne nécessite aucun prérequis : un attaquant externe peut crasher les worker processes NGINX de manière répétée avec une seule requête HTTP malformée, rendant le service indisponible. Pour les organisations hébergeant des services critiques — e-commerce, APIs bancaires, services de santé en ligne — cette indisponibilité est directement liée à l'intégrité opérationnelle et peut entraîner des pertes financières et réputationnelles significatives.
L'impact RCE, bien que conditionné à l'absence d'ASLR, représente un risque réel pour les systèmes legacy. Une compromission RCE d'un reverse proxy NGINX donne à l'attaquant accès à l'ensemble du trafic HTTP/HTTPS transitant par le proxy, aux certificats TLS stockés sur le système, aux backends applicatifs accessibles depuis le proxy, et aux credentials d'authentification potentiellement mis en cache. Dans les architectures microservices où NGINX fait office de point d'entrée unique, la compromission du reverse proxy revient à compromettre l'ensemble de la surface applicative.
La publication simultanée du patch et du PoC par DepthFirst AI a créé une course entre les équipes d'administration et les attaquants. Les organisations utilisant NGINX via leur gestionnaire de paquets système (apt, yum, dnf) peuvent mettre à jour rapidement via les dépôts de distribution. En revanche, les organisations qui compilent NGINX depuis les sources ou qui utilisent des images Docker officielles non mises à jour sont particulièrement exposées.
Les produits F5 dérivés de NGINX sont également concernés avec leurs propres calendriers de correctifs. NGINX Plus R32 P6 et R36 P4 sont les versions corrigées pour les souscriptions commerciales. NGINX Ingress Controller, App Protect WAF, Gateway Fabric et Instance Manager ont chacun leurs propres versions corrigées, toutes détaillées dans l'advisory F5 K000161019.
Recommandations immédiates
- Mettre à jour NGINX Open Source vers la version 1.30.1 (branche stable) ou 1.31.0 (branche mainline) — advisory : F5 Security Advisory K000161019
- Mettre à jour NGINX Plus vers R32 P6 ou R36 P4 selon votre branche de souscription — advisory : F5 Security Advisory K000161019
- Mitigation sans mise à jour immédiate : remplacer toutes les captures PCRE non nommées (
$1,$2) par des captures nommées ((?P<name>...)) dans toutes les directivesrewriteaffectées de vos configurations NGINX - Auditer vos fichiers de configuration NGINX pour identifier les blocs
locationcontenant une directiverewriteavec capture non nommée, caractère?, et directive suivante dans le même bloc - Mettre à jour les images Docker NGINX officielles vers nginx:1.30.1 ou nginx:1.31.0 et redéployer tous les conteneurs concernés
- Mettre à jour NGINX Ingress Controller, App Protect WAF, Gateway Fabric et Instance Manager selon les versions corrigées listées dans l'advisory F5 K000161019
⚠️ Urgence
CVE-2026-42945 affecte potentiellement 33 % des serveurs web mondiaux avec un déni de service sans authentification exploitable immédiatement. Un proof-of-concept public est disponible depuis le 13 mai 2026 et des tentatives d'exploitation actives ont été confirmées par VulnCheck dès le 17 mai 2026. Toute organisation exposant un service NGINX sur Internet doit vérifier sa configuration et appliquer le patch ou la mitigation en urgence.
Comment savoir si je suis vulnérable ?
Deux vérifications sont nécessaires. Premièrement, vérifiez votre version NGINX en exécutant nginx -v en ligne de commande. Si la version est inférieure à 1.30.1 (stable) ou 1.31.0 (mainline), la version est vulnérable. Deuxièmement, vérifiez votre configuration : recherchez dans vos fichiers nginx.conf et les fichiers inclus les directives rewrite contenant simultanément une capture PCRE non nommée ($1, $2, ...), un ? dans la chaîne de remplacement, ET une directive rewrite, if ou set dans le même bloc location. La commande grep -rn rewrite /etc/nginx/ permet de localiser rapidement les directives à auditer. Si les deux conditions sont réunies, votre instance est exploitable pour un DoS sans authentification.
Votre infrastructure est-elle exposée ?
Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.
Demander un auditÀ propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
ayi@ayinedjimi-consultants.fr
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Testez vos connaissances
Mini-quiz de certification lié à cet article — propulsé par CertifExpress
Articles connexes
CVE-2026-44194 : RCE root OPNsense via injection de commande
CVE-2026-44194 (CVSS 9.1) permet l'exécution de code root sur OPNsense via un nom d'utilisateur email malformé. CVE-2026-45158 complémentaire (CVSS 9.1) permet RCE root sans credentials via injection DHCP. Patch : OPNsense 26.1.8.
CVE-2026-0300 : RCE non-auth Palo Alto PAN-OS (CVSS 9.3)
CVE-2026-0300 est un zero-day critique (CVSS 9.3) affectant Palo Alto PAN-OS : un débordement de tampon heap dans le portail User-ID permet une RCE sans authentification. Exploitation active confirmée, ajout immédiat au catalogue KEV de la CISA.
CVE-2026-3854 : RCE GitHub Enterprise Server via git push
GitHub Enterprise Server est vulnérable à CVE-2026-3854, une injection de commande dans babeld permettant la RCE via git push. 88% des instances restaient non patchées à la divulgation.
Un projet cybersécurité ? Parlons-en.
Pentest, conformité NIS 2, ISO 27001, audit IA, RSSI externalisé… nos experts répondent sous 24h pour évaluer votre besoin.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire