D-OPEN

NGINX Rift CVE-2026-42945 : faille critique de 18 ans exploitee activement, ce que les developpeurs open source doivent faire maintenant

NGINX Rift CVE-2026-42945 faille critique heap buffer overflow securite serveur
Erik Johansson

Erik Johansson

Ingenieur securite applicative · 20 mai 2026 · 14 min de lecture

TL;DR

  • CVE-2026-42945 (NGINX Rift) : heap buffer overflow CVSS 9.2 dans ngx_http_rewrite_module, present depuis 2008 (18 ans). Seulement 3 requetes suffisent pour tuer simultanement les workers NGINX et provoquer un deni de service complet.
  • • Exploitation active detectee par VulnCheck des le 16 mai 2026, 3 jours apres la publication du correctif F5. PoC disponible publiquement sur GitHub. RCE possible lorsque ASLR est desactive ou via des techniques de heap grooming.
  • • Versions affectees : NGINX Open Source 0.6.27 a 1.30.0 et NGINX Plus R32 a R36. Patchs disponibles : NGINX 1.28.3, 1.30.1, NGINX Plus R37 P1 et retroports. Appliquez le correctif maintenant.

Le 13 mai 2026, F5 Networks a publie un avis de securite concernant CVE-2026-42945, une vulnerabilite critique baptisee NGINX Rift. Il s agit d un heap buffer overflow dans le module ngx_http_rewrite_module de NGINX, note CVSS 9.2 sur 10 (critique). Le bug a ete introduit en 2008 dans la version 0.6.27, ce qui en fait une faille dormante depuis 18 ans. Elle affecte toutes les versions de NGINX Open Source de 0.6.27 a 1.30.0 et NGINX Plus de R32 a R36. Divulguee de maniere responsable le 21 avril 2026, la faille a ete corrigee par F5 le 13 mai. Mais les systemes de detection canary de VulnCheck ont enregistre les premieres tentatives d exploitation active des le 16 mai 2026, soit seulement 3 jours apres la publication de l avis. Un code d exploit (PoC) est desormais disponible publiquement sur GitHub.

Pour les developpeurs et administrateurs systemes francophones, la situation est d autant plus urgente que NGINX propulse environ 34% des serveurs web dans le monde. Chaque serveur NGINX non patche qui utilise le module rewrite — ce qui represente la grande majorite des configurations de production — est une cible potentielle. L exploit est devastateur par sa simplicite : 3 requetes HTTP suffisent pour tuer simultanement tous les workers NGINX, et une boucle continue maintient une interruption de service totale. Pire, dans certaines conditions (ASLR desactive, ou techniques de heap grooming sophistiquees), l execution de code a distance (RCE) est possible. Si vous gerez un serveur NGINX en production, arretez ce que vous faites et verifiez votre version. Nous avions deja alerte sur les risques d infrastructure dans notre analyse de la CVE-2026-23918 Apache HTTP/2.

Notre avis d expert

18 ans. Ce bug a survecu 18 ans dans l un des logiciels les plus audites de la planete. NGINX est open source, deploye sur des millions de serveurs, scrute par des equipes de securite du monde entier — et pourtant, une incoherence dans deux passes de traitement d un module de base est restee invisible pendant presque deux decennies. C est la preuve definitive que l audit de code humain, meme collectif, a des limites fondamentales. Les outils d analyse statique et les fuzzing automatises ne sont plus des bonus — ils sont des necessites absolues pour tout projet d infrastructure critique.

Chronologie complete de la CVE-2026-42945

L histoire de cette vulnerabilite s etend sur pres de deux decennies. Comprendre sa chronologie est essentiel pour mesurer l ampleur du risque et la vitesse a laquelle l exploitation a commence apres la divulgation. Voici les etapes cles, de l introduction du bug en 2008 a l exploitation active detectee en mai 2026.

CHRONOLOGIE CVE-2026-42945 NGINX RIFT — 18 ANS DE FAILLE DORMANTE2008Bug introduitVersion 0.6.27ngx_http_rewrite_module18 ANS DORMANTE — NON DETECTEE21 AVRIL 2026Divulgation responsableRapport a F5 NetworksEmbargo 22 jours13 MAI 2026F5 publie le patchNGINX 1.28.3 / 1.30.1NGINX Plus R37 P116 MAI 2026Exploitation activeVulnCheck canaryPoC public sur GitHubFENETRE D EXPOSITION : 18 ANSBug present dans toutes les versions depuis 2008COURSE CONTRE LA MONTRE3 jours entre patch et exploitation activeCVSS 9.2 / 10 — CRITIQUE

En 2008, un commit dans le code source de NGINX introduit une incoherence subtile dans le module ngx_http_rewrite_module. Le bug reside dans la facon dont le moteur de script NGINX gere le flag is_args lorsque certaines combinaisons specifiques de directives rewrite sont presentes dans la configuration. Ce bug reste indetecte pendant 18 ans, traversant des centaines de versions, des milliers de reviews de code, et des millions de deploiements en production sans jamais se manifester de maniere visible — jusqu a ce qu un chercheur en securite identifie le pattern exact qui le declenche.

Le 21 avril 2026, le chercheur divulgue de maniere responsable la vulnerabilite a F5 Networks, proprietaire de NGINX depuis 2019. F5 confirme la faille et entame un processus de correction sous embargo. Le 13 mai 2026, F5 publie simultanement l avis de securite et les versions patchees : NGINX Open Source 1.28.3 et 1.30.1, ainsi que des correctifs pour toutes les versions supportees de NGINX Plus. Les sources rapportent que la fenetre d embargo de 22 jours a permis a F5 de preparer des correctifs pour les six versions majeures de NGINX Plus encore supportees. Malheureusement, le 16 mai 2026, seulement 3 jours apres la publication, les systemes de detection de VulnCheck enregistrent les premieres tentatives d exploitation dans la nature. Un PoC (Proof of Concept) est publie sur GitHub, rendant l exploitation accessible a des attaquants de niveau intermediaire.

Analyse technique : le heap buffer overflow dans ngx_http_rewrite_module

La cause racine de CVE-2026-42945 est une incoherence entre deux passes de traitement dans le moteur de script NGINX. Quand NGINX compile une directive rewrite, il effectue d abord une passe de calcul de longueur pour determiner la taille du buffer necessaire, puis une passe de copie pour ecrire le resultat dans ce buffer. Le probleme survient dans une configuration tres specifique : quand une directive rewrite est suivie d une autre directive rewrite, if, ou set qui utilise une capture PCRE non nommee (unnamed capture), et que la chaine de remplacement contient un point d interrogation.

Dans cette configuration, le flag is_args est traite differemment dans les deux passes. Lors de la passe de calcul de longueur, le moteur de script considere que le point d interrogation fait partie de la chaine de remplacement et calcule la taille du buffer en consequence. Mais lors de la passe de copie, le flag is_args est evalue differemment a cause de l interaction avec la capture PCRE non nommee de la directive suivante, ce qui fait que la passe de copie ecrit plus de donnees que le buffer ne peut en contenir. Le resultat est un heap buffer overflow classique : des donnees controlables par l attaquant debordent dans la memoire heap adjacente, corrompant les structures de donnees du processus NGINX.

L impact est immediat et devastateur. L overflow corrompt les structures de donnees internes de NGINX, ce qui provoque le crash du worker process qui traite la requete. La configuration par defaut de NGINX lance plusieurs worker processes, mais un attaquant peut envoyer des requetes ciblant chacun d entre eux. Les chercheurs ont demontre que 3 requetes suffisent pour tuer simultanement plusieurs workers NGINX, et qu une boucle continue de requetes maintient un deni de service total tant que le serveur n est pas patche ou que la configuration vulnerable n est pas modifiee. Plus preoccupant encore, quand ASLR est desactive (ce qui est le cas sur certains systemes embarques, conteneurs minimalistes, ou configurations de debug), ou via des techniques avancees de heap grooming, l attaquant peut potentiellement obtenir une execution de code a distance (RCE) en controlant precisement les donnees qui debordent dans les structures adjacentes.

FLUX D ATTAQUE CVE-2026-42945 — HEAP BUFFER OVERFLOW NGINX REWRITEATTAQUANTEnvoie 3 requetes HTTPciblant les rewrite rulesURL avec pattern PCRE + ?ngx_http_rewrite_modulePasse 1 : calcul longueuris_args = valeur ABuffer alloue trop petitPASSE DE COPIEPasse 2 : ecriture bufferis_args = valeur BHEAP OVERFLOWMEMOIRE HEAP NGINXBuffer alloueOVERFLOWStructures adjacentescorrompuesDENI DE SERVICEWorkers NGINX crashent3 requetes = service downBoucle = DoS permanentRCESi ASLR offOu heap groomingCode execution distanteCONFIGURATION VULNERABLE (exemple)location /app {rewrite ^/old(.*)$ /new$1?v=2;rewrite ^/(.*)$ /final/$1 break;}Deux rewrites + capture non nommee + ? = overflow34% DES SERVEURS WEButilisent NGINXSurface d attaque massive3 REQUETESpour tuer les workersExploit trivialPOC PUBLICsur GitHub depuis le 16 maiExploitation scripte

Notre avis d expert

La combinaison de facilite d exploitation et d impact massif fait de NGINX Rift l une des vulnerabilites infrastructure les plus dangereuses de 2026. Contrairement a beaucoup de CVE critiques qui necessitent des conditions prealables complexes, celle-ci ne demande qu une configuration courante (deux directives rewrite consecutives avec un pattern specifique) et 3 requetes HTTP. Le ratio effort/impact est catastrophiquement favorable a l attaquant. Le fait que le PoC soit public et que l exploitation ait commence en 3 jours signifie que chaque heure de retard dans le patching expose votre infrastructure. Il n y a aucune excuse valable pour ne pas patcher cette semaine.

Versions affectees : NGINX Open Source vs NGINX Plus

La portee de CVE-2026-42945 est exceptionnellement large en raison de l age du bug. Voici le detail des versions affectees et des correctifs disponibles pour NGINX Open Source et NGINX Plus. Si vous ne savez pas quelle version vous utilisez, executez nginx -v sur votre serveur.

ProduitVersions vulnerablesVersion patcheeModule concerneImpact
NGINX Open Source (stable)0.6.27 — 1.28.21.28.3ngx_http_rewrite_moduleDoS + RCE potentiel
NGINX Open Source (mainline)0.6.27 — 1.30.01.30.1ngx_http_rewrite_moduleDoS + RCE potentiel
NGINX Plus R37R37R37 P1ngx_http_rewrite_moduleDoS + RCE potentiel
NGINX Plus R36R36 — R36 P2R36 P3ngx_http_rewrite_moduleDoS + RCE potentiel
NGINX Plus R35R35 — R35 P2R35 P3ngx_http_rewrite_moduleDoS + RCE potentiel
NGINX Plus R34R34 — R34 P3R34 P4ngx_http_rewrite_moduleDoS + RCE potentiel
NGINX Plus R33R33 — R33 P4R33 P5ngx_http_rewrite_moduleDoS + RCE potentiel
NGINX Plus R32R32 — R32 P5R32 P6ngx_http_rewrite_moduleDoS + RCE potentiel

La largeur de la plage de versions affectees est sans precedent pour une CVE NGINX. Le fait que toutes les versions depuis 0.6.27 (2008) soient vulnerables signifie que pratiquement toute installation NGINX en production est concernee. Les seules installations epargnees sont celles qui n utilisent pas du tout le module ngx_http_rewrite_module — ce qui est extremement rare en production puisque les directives rewrite sont utilisees dans la quasi-totalite des configurations pour la redirection d URL, le routage, et la normalisation des requetes. Consultez l avis de securite officiel F5 K000150920 pour les details complets des versions et correctifs.

Exploitation active : ce que rapportent VulnCheck et les sources de threat intelligence

Les premieres preuves d exploitation dans la nature ont ete detectees par les systemes canary de VulnCheck le 16 mai 2026, seulement 3 jours apres la publication de l avis de securite par F5. VulnCheck deploie des honeypots (serveurs pieges) configurees avec des versions vulnerables de logiciels populaires pour detecter les premieres tentatives d exploitation. Les requetes capturees correspondaient exactement au pattern decrit dans le PoC publie sur GitHub, confirmant que les attaquants utilisent le code d exploit public sans modification significative.

Les rapports de The Hacker News, BleepingComputer, Orca Security, Help Net Security, SOCPrime et Beazley Security convergent sur plusieurs points cles. Premierement, les tentatives d exploitation ciblent principalement le deni de service plutot que la RCE, ce qui est logique puisque le DoS est trivial (3 requetes) tandis que la RCE necessite des conditions specifiques (ASLR off ou heap grooming). Deuxiemement, les attaques semblent provenir de scanners automatises qui tentent de detecter les serveurs NGINX vulnerables a grande echelle, plutot que d attaques ciblees. Troisiemement, la vitesse d adoption de l exploit — 3 jours entre la publication du patch et l exploitation active — est coherente avec la tendance observee en 2025-2026 ou le delai moyen entre la publication d un correctif et l exploitation dans la nature est passe de 15 jours a environ 5 jours selon les donnees de Mandiant et Rapid7.

Le PoC disponible sur GitHub est particulierement bien documente, avec des instructions claires pour reproduire le crash sur un serveur NGINX vulnerable en environnement de test. Le code d exploit identifie automatiquement si le serveur cible utilise le module rewrite avec une configuration vulnerable, puis envoie les requetes necessaires pour declencher l overflow. La simplicite du PoC le rend accessible a des attaquants de niveau intermediaire, ce qui augmente significativement le nombre de menaces potentielles. Pour les details techniques de la CVE, consultez la fiche NVD officielle CVE-2026-42945.

Notre avis d expert

Le delai de 3 jours entre patch et exploitation active est la nouvelle norme, et votre processus de patch management doit s y adapter. L epoque ou vous aviez 30 jours pour appliquer un patch critique est revolue. Les attaquants lisent les avis de securite, analysent les diffs de code, et developpent des exploits en quelques heures. Si votre processus de mise a jour NGINX prend plus de 48 heures entre la publication d un patch critique et son deploiement en production, vous etes en retard. Automatisez le monitoring des CVE pour vos composants d infrastructure, pre-testez les mises a jour NGINX dans un environnement staging, et preparez des runbooks de patching d urgence que votre equipe peut executer en moins de 4 heures.

Ce que ca signifie pour vous

Si vous administrez un serveur NGINX en production : la premiere etape est de verifier votre version avec nginx -v. Si vous utilisez une version anterieure a 1.28.3 (stable) ou 1.30.1 (mainline), vous etes vulnerable. Mettez a jour immediatement. Si la mise a jour immediate est impossible pour des raisons operationnelles, auditez vos fichiers de configuration NGINX a la recherche de patterns vulnerables : deux directives rewrite consecutives ou une directive rewrite suivie de if ou set avec des captures non nommees et un point d interrogation. Remplacez les captures non nommees par des captures nommees comme mesure d attenuation temporaire.

Si vous gerez des conteneurs Docker avec NGINX : verifiez la version NGINX dans vos images de base. Les images officielles nginx:latest et nginx:stable ont ete mises a jour avec les correctifs, mais si vous utilisez des images custom ou des tags de version fixes, vous devez reconstruire vos images. Verifiez egalement que ASLR est active dans vos conteneurs (c est le cas par defaut avec Docker, mais certaines configurations de securite ou profils seccomp peuvent le desactiver). Si vous utilisez NGINX comme ingress controller dans Kubernetes, verifiez la version embarquee dans votre chart Helm et mettez a jour.

Si vous etes developpeur open source : cette CVE est un rappel que les bugs subtils dans du code C de bas niveau peuvent survivre des decennies sans detection. Si votre projet open source inclut NGINX dans sa stack de deploiement recommandee (ce qui est tres courant pour les projets web), mettez a jour votre documentation pour specifier la version minimale requise et ajoutez un avertissement dans vos release notes. Plus largement, si vous maintenez du code C ou C++ qui traite des donnees utilisateur, investissez dans le fuzzing systematique — des outils comme AFL++ et libFuzzer auraient probablement detecte cette incoherence entre les deux passes bien plus tot. Notre guide sur la securisation des pipelines contre les attaques supply chain couvre des principes applicables au-dela de npm.

ARBRE DE DECISION — URGENCE DE PATCH CVE-2026-42945Utilisez-vous NGINX ?nginx -v sur votre serveurNONPAS DIRECTEMENT CONCERNEVerifiez vos reverse proxiesOUIVersion patchee ?1.28.3+ / 1.30.1+ / Plus Rx PyOUIPATCHE — verifiez les logsAnalysez error.log pour des tentatives d exploit anterieuresNONVULNERABLE — Patchez-vous maintenant ?Exploit actif dans la natureOUIPATCHER IMMEDIATEMENT1. apt update && apt upgrade nginx2. nginx -t && systemctl reload nginx3. Verifier error.log pour traces d exploitNONATTENUERCaptures nommeesWAF / rate limitPatcher sous 48h maxVERIFICATION ASLRcat /proc/sys/kernel/randomize_va_spaceValeur 2 = ASLR actif (bon)Valeur 0 = ASLR off (RCE possible !)PRIORITE MAXIMALEASLR off + version vulnerable= RCE possiblePatcher dans l heurePRIORITE HAUTEASLR on + version vulnerable= DoS garanti, RCE theoriquePatcher sous 24hAPRES PATCHAnalyser error.logAuditer configs rewriteAdopter captures nommees

Besoin d aide pour patcher vos serveurs NGINX ?

Audit de configuration NGINX, patch management d urgence, mise en place de monitoring CVE, durcissement infrastructure — notre equipe d experts vous accompagne.

Nous contacter

Impact sur l ecosysteme open source et lecons a retenir

NGINX Rift CVE-2026-42945 est un cas d ecole qui met en lumiere plusieurs failles structurelles dans la securite des projets d infrastructure open source. La premiere lecon est que l anciennete du code ne garantit pas sa surete. Le module ngx_http_rewrite_module est l un des composants les plus anciens et les plus fondamentaux de NGINX. Il a ete lu, relu, audite, et modifie par des centaines de developpeurs au fil des annees. Et pourtant, une incoherence subtile entre deux passes de traitement est restee invisible pendant 18 ans. Ce n est pas un echec individuel — c est une limitation inherente de l audit de code humain face a la complexite des interactions entre composants.

La deuxieme lecon concerne la velocite de l exploitation moderne. Le passage de 3 jours entre la publication du correctif et l exploitation active est un record inquietant pour une vulnerabilite d infrastructure. Cela signifie que les equipes d operations qui planifient leurs mises a jour de securite sur des cycles hebdomadaires ou mensuels sont systematiquement en retard face aux attaquants. Le modele de patch management traditionnel — evaluation, test en staging, deploiement planifie — doit etre repense pour les vulnerabilites d infrastructure critique. Un processus de patching d urgence en 4 heures ou moins est desormais necessaire pour les CVE avec un CVSS superieur a 9.0 et un PoC public.

La troisieme lecon est que la securite de la memoire en C reste un probleme fondamental non resolu. Le heap buffer overflow est l une des classes de vulnerabilites les plus anciennes en informatique, et pourtant elle continue de produire des CVE critiques en 2026. Les projets d infrastructure comme NGINX, Apache, et le noyau Linux sont ecrits en C pour des raisons de performance, mais ce choix a un cout securitaire mesurable. Les efforts de reecriture en Rust ou en langages memory-safe (comme le projet Prossimo de l ISRG pour Apache) ne sont pas des exercices academiques — ils sont des investissements dans la reduction structurelle du risque. Pour les developpeurs qui maintiennent du code C critique, l integration du fuzzing continu (avec AFL++ ou libFuzzer) et de l analyse statique (avec Coverity, CodeQL, ou Semgrep) n est plus optionnelle. Comme nous l avons detaille dans notre guide sur la configuration de pipelines CI/CD securises pour les projets open source, ces outils doivent faire partie integrante du workflow de developpement.

Enfin, cette CVE illustre le dilemme de la divulgation responsable. L embargo de 22 jours entre la divulgation au vendeur et la publication publique a permis a F5 de preparer des correctifs pour six versions de NGINX Plus — un resultat positif. Mais il a aussi signifie que pendant 22 jours, les attaquants sophistiques qui avaient independamment decouvert la faille (ou qui avaient acces a des informations privilegiees) pouvaient l exploiter sans que les administrateurs ne sachent qu ils etaient vulnerables. C est un compromis inherent a la divulgation responsable, et il n y a pas de solution parfaite. Ce que les administrateurs peuvent faire, c est s assurer qu ils sont abonnes aux listes de diffusion de securite de leurs fournisseurs d infrastructure et qu ils sont prets a reagir en heures, pas en jours, quand un avis critique est publie.

FAQ

Qu est-ce que NGINX Rift CVE-2026-42945 et pourquoi est-elle critique ?

CVE-2026-42945, surnommee "NGINX Rift", est un heap buffer overflow dans le module ngx_http_rewrite_module de NGINX. Notee CVSS 9.2 (critique), elle est presente dans le code source depuis 2008 — soit 18 ans avant sa decouverte. La faille permet un deni de service complet avec seulement 3 requetes HTTP, et potentiellement une execution de code a distance (RCE) lorsque ASLR est desactive ou via des techniques de heap grooming. Elle est activement exploitee dans la nature depuis le 16 mai 2026, avec un PoC public sur GitHub. Elle affecte NGINX Open Source de 0.6.27 a 1.30.0 et NGINX Plus de R32 a R36.

Quelles versions de NGINX sont affectees et comment verifier la mienne ?

Toutes les versions de NGINX Open Source de 0.6.27 (2008) a 1.30.0 sont vulnerables. Pour NGINX Plus, les versions R32 a R36 sont affectees. Pour verifier votre version, executez nginx -v sur votre serveur. Les versions corrigees sont NGINX Open Source 1.28.3 (stable) et 1.30.1 (mainline), et pour NGINX Plus : R37 P1, R36 P3, R35 P3, R34 P4, R33 P5, R32 P6. Mettez a jour immediatement vers la version patchee correspondant a votre branche.

Comment fonctionne techniquement l exploit NGINX Rift ?

L exploit cible une incoherence dans le flag is_args entre la passe de calcul de longueur et la passe de copie dans le moteur de script de ngx_http_rewrite_module. Lorsqu une directive rewrite est suivie d une autre directive rewrite, if, ou set utilisant une capture PCRE non nommee et que la chaine de remplacement contient un point d interrogation, le buffer alloue lors de la premiere passe est trop petit pour les donnees ecrites lors de la deuxieme passe. Le resultat est un heap buffer overflow qui corrompt les structures de donnees adjacentes, provoquant le crash du worker NGINX. En boucle, cela maintient un deni de service permanent.

Comment patcher NGINX contre CVE-2026-42945 immediatement ?

Pour NGINX Open Source sur Debian/Ubuntu : sudo apt update && sudo apt upgrade nginx. Pour RHEL/CentOS : sudo dnf update nginx. Verifiez que la nouvelle version est 1.28.3+ (stable) ou 1.30.1+ (mainline). Pour NGINX Plus, telechargez le patch correspondant a votre version depuis le portail F5 et suivez les instructions de mise a jour. Apres la mise a jour : nginx -t pour valider la configuration, puis systemctl reload nginx. Si la mise a jour immediate est impossible, remplacez les captures PCRE non nommees par des captures nommees dans vos directives rewrite comme mesure d attenuation temporaire.

Securisez votre infrastructure NGINX contre les failles critiques

Audit de configuration NGINX, patching d urgence, durcissement des rewrites, monitoring CVE continu, formation equipe DevSecOps — nous protegeons vos serveurs.

Demander un audit NGINX

Articles lies :

Sources : NVD NIST — CVE-2026-42945, F5 Security Advisory K000150920, The Hacker News, BleepingComputer