D-OPEN

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

Erik Johansson

Erik Johansson

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

TL;DR

  • CVE-2026-42945 (CVSS 9.2), surnommee NGINX Rift, est un heap buffer overflow dans ngx_http_rewrite_module present depuis 18 ans (versions 0.6.27 a 1.30.0). Root cause : le flag is_args dans le moteur ngx_http_script n est pas reinitialise entre les passes de calcul de longueur et d ecriture.
  • Exploitation active depuis le 16 mai 2026, 3 jours apres la disclosure publique et le PoC. VulnCheck a confirme des tentatives d exploitation dans la nature. DoS confirme, RCE possible si ASLR est desactive.
  • Actions immediates : patcher vers NGINX 1.30.1+, remplacer les captures PCRE non nommees par des captures nommees, auditer vos configurations rewrite, activer le monitoring CVE.

Les faits : 18 ans de vulnerabilite, 3 jours entre disclosure et exploitation

Le 13 mai 2026, F5 et AlmaLinux publient simultanement les correctifs pour CVE-2026-42945, une vulnerabilite baptisee NGINX Rift par les chercheurs. Score CVSS : 9.2 (critique). Le bug reside dans le module ngx_http_rewrite_module, present dans les builds par defaut de NGINX depuis la version 0.6.27 publiee en 2008. Cela en fait une vulnerabilite de 18 ans, l une des plus longues periodes de latence pour une faille critique dans un serveur web aussi deploye.

Trois jours plus tard, le 16 mai 2026, les systemes canary de VulnCheck detectent les premieres tentatives d exploitation dans la nature. Le PoC publie apres la disclosure a permis a des attaquants d automatiser l exploitation. Les sources qui ont rapporte l evenement incluent The Hacker News, Help Net Security, Picus Security, NSFOCUS et Qualys ThreatPROTECT.

Pour mettre en perspective : NGINX equipe plus de 34 pourcent des sites web actifs dans le monde selon W3Techs. En France, c est le reverse proxy de reference pour les PME, les startups et les administrations. Une faille de cette envergure concerne potentiellement des millions de deployments.

Avis d expert #1 — Erik Johansson

18 ans. Ce chiffre devrait faire reflechir toute la communaute open source. Cela signifie que chaque audit de securite realise sur NGINX entre 2008 et 2026 a manque cette faille. Ce n est pas un blame — c est un constat structurel. Le module ngx_http_rewrite_module est dans les builds par defaut, utilise par des millions de serveurs, et pourtant la mecanique subtile du flag is_args est restee invisible pendant presque deux decennies. La lecon n est pas que les audits sont inutiles, c est qu ils sont insuffisants sans une couverture specifique des chemins d execution conditionnels dans les moteurs de rewriting.

Deep dive technique : le bug is_args et le mecanisme d overflow

La root cause de CVE-2026-42945 est un logic/state mismatch dans le moteur ngx_http_script qui gere les directives rewrite. Voici la mecanique exacte de l exploitation.

Le moteur de rewriting NGINX fonctionne en deux passes. La premiere passe calcule la longueur du buffer necessaire pour stocker l URI reecrite. La deuxieme passe ecrit effectivement les donnees dans le buffer alloue a la taille calculee en premiere passe.

Le probleme survient avec le flag is_args. Ce flag indique si un point d interrogation a ete rencontre dans la string de remplacement. Pendant la premiere passe (calcul de longueur), le flag est positionne quand la directive rewrite traite un remplacement contenant un ?. Mais ce flag n est pas reinitialise avant la deuxieme passe.

Consequence : la premiere passe calcule une longueur plus courte que necessaire, car elle ne prend pas en compte l echappement URI (percent-encoding) qui sera applique lors de la deuxieme passe. Quand la deuxieme passe ecrit les donnees avec l echappement URI, elle depasse la taille du buffer alloue. C est le heap buffer overflow.

Les conditions necessaires pour declencher la vulnerabilite sont precises :

  • Une directive rewrite utilisant des captures PCRE non nommees (par exemple (.*) au lieu de (?P<path>.*))
  • Un point d interrogation dans la string de remplacement
  • Cette directive suivie d une autre directive rewrite, if ou set
# Configuration VULNERABLE
server {
    location / {
        rewrite ^/old/(.*) /new/$1?redirect=true;
        rewrite ^/legacy/(.*) /modern/$1 break;
    }
}

# Configuration SAFE (captures nommees)
server {
    location / {
        rewrite ^/old/(?P<path>.*) /new/$path?redirect=true;
        rewrite ^/legacy/(?P<legacypath>.*) /modern/$legacypath break;
    }
}

L exploitation en pratique produit un crash du worker process NGINX (DoS), car le heap overflow corrompt les structures de donnees du processus. Si ASLR est desactive sur le serveur cible, un attaquant sophistique peut potentiellement pivoter vers une execution de code a distance (RCE) en controlant le contenu ecrit au-dela du buffer.

TIMELINE CVE-2026-42945 NGINX RIFT2008Bug introduitv0.6.2713 mai 2026Disclosure + PatchAlmaLinux, F513-16 maiPoC public3 jours16 mai 2026Exploitation activeVulnCheck canary18 ANS DE VULNERABILITE NON DETECTEESources : The Hacker News, Help Net Security, VulnCheck, AlmaLinux, Picus SecurityDiagramme d-open.org — 19 mai 2026

Avis d expert #2 — Ce que cela signifie pour les audits open source

La decouverte de CVE-2026-42945 apres 18 ans met en evidence une faille systemique dans notre approche des audits de securite open source. Les audits traditionnels se concentrent sur les vulnerabilites de memoire evidentes — buffer overflows classiques, use-after-free, double free. Mais NGINX Rift est un bug de logique d etat : le mismatch entre deux passes d un moteur de scripting interne. Ce type de vulnerabilite necessite une comprehension profonde de l architecture interne du module, pas juste un scan statique. Pour l ecossyteme open source francais, cela signifie que les projets critiques comme NGINX ont besoin d audits dedies par des specialistes qui comprennent la base de code, pas seulement des outils automatises. Le modele OSTIF applique a NGINX aurait probablement detecte ce bug des annees plus tot.

NGINX vs Apache vs Caddy : historique des vulnerabilites critiques

Pour mettre CVE-2026-42945 en contexte, voici un comparatif des vulnerabilites critiques recentes dans les trois principaux serveurs web open source. Ce tableau illustre que les failles de longue duree ne sont pas un probleme specifique a NGINX — c est un defi structurel de l open source.

ServeurCVE recenteCVSSTypeAge du bug
NGINXCVE-2026-42945 Rift9.2Heap overflow18 ans
ApacheCVE-2026-239188.8Double free mod_http29 ans
ApacheCVE-2024-384769.8SSRF mod_rewrite6 ans
CaddyCVE-2024-453896.5Auth bypass1 an

Le pattern est clair : plus le projet est ancien et plus le module est dans le build par defaut, plus la fenetre de vulnerabilite est longue. Caddy, ecrit en Go avec une gestion memoire automatique, a structurellement moins de risque de buffer overflow. Mais Apache et NGINX, ecrits en C, portent la dette technique de decisions d architecture prises il y a 15 a 25 ans. Pour les developpeurs francais qui deploient ces serveurs, la question n est pas de choisir entre eux mais de s assurer que le pipeline de patching est automatise. Notre analyse detaillee de la CVE Apache HTTP/2 de mai 2026 couvre les memes enjeux cote Apache.

FLUX D ATTAQUE CVE-2026-42945 — HEAP BUFFER OVERFLOWRequete HTTPURI avec caracteresspeciaux (%xx)Passe 1 : longueuris_args = trueCalcul TROP COURTPasse 2 : ecritureURI escaping appliqueDEPASSE LE BUFFERHEAP OVERFLOWWorker crash (DoS)RCE si ASLR offCVSS 9.2CONDITION DE DECLENCHEMENTrewrite avec capture PCRE non nommee + ? dans remplacement + suivi de rewrite/if/setMITIGATION : captures nommees(?P<name>...) au lieu de (...)PATCH : NGINX 1.30.1+Reset is_args entre les passes

Avis d expert #3 — Pourquoi ASLR est crucial et pourquoi certains serveurs l ont desactive

ASLR (Address Space Layout Randomization) est la derniere ligne de defense entre un crash et une execution de code arbitraire. Sur Linux, ASLR est active par defaut depuis le kernel 2.6.12 (2005). Mais dans la pratique, certains administrateurs le desactivent pour des raisons de debug, de performance perceptible (marginal en realite) ou par meconnaissance. Les conteneurs Docker heritent du parametre ASLR de l hote, mais certaines images legacy le desactivent explicitement. Sur les serveurs bare metal deployes avant 2012 et jamais reinstalles, ASLR peut etre desactive dans /proc/sys/kernel/randomize_va_space. Si vous gerez des serveurs NGINX en production, verifiez immediatement : cat /proc/sys/kernel/randomize_va_space — la valeur doit etre 2. Si elle est 0, vous etes en danger critique.

Ce que ca signifie pour vous : 5 actions immediates

Que vous soyez developpeur, SRE, DevOps ou CTO d une startup francaise, voici les 5 actions concretes a executer cette semaine.

  1. Verifiez votre version NGINX. Sur chaque serveur, executez nginx -v. Toute version entre 0.6.27 et 1.30.0 est vulnerable. Automatisez cette verification avec Ansible si vous gerez plus de 5 serveurs : ansible all -m shell -a "nginx -v 2>&1".
  2. Appliquez le patch. Mettez a jour vers NGINX 1.30.1 ou superieur. Sur Debian/Ubuntu : sudo apt update && sudo apt upgrade nginx. Sur RHEL/AlmaLinux : sudo dnf update nginx. Testez sur staging avant de deployer en production.
  3. Auditez vos configurations rewrite. Cherchez les configurations vulnerables : grep -rn 'rewrite.*(.*).*?' /etc/nginx/. Remplacez les captures non nommees par des captures nommees. Voir notre guide en 7 etapes pour auditer votre configuration NGINX apres CVE-2026-42945.
  4. Activez le monitoring CVE. Configurez Dependabot ou Renovate pour vos images Docker contenant NGINX. Ajoutez des alertes Datadog ou Grafana sur les crash de worker process NGINX.
  5. Verifiez ASLR. Sur chaque serveur et conteneur : cat /proc/sys/kernel/randomize_va_space. La valeur doit etre 2. Si c est 0, corrigez immediatement : echo 2 | sudo tee /proc/sys/kernel/randomize_va_space.
CONFIGURATION NGINX : VULNERABLE vs SECURISEEVULNERABLEserver {location / {rewrite ^/app/(.*) /v2/$1?lang=fr;rewrite ^/old/(.*) /new/$1 break;}}Capture non nommee + ? = OVERFLOWSECURISEEserver {location / {rewrite ^/app/(?P<p>.*) /v2/$p?lang=fr;rewrite ^/old/(?P<o>.*) /new/$o break;}}Captures nommees = PAS D OVERFLOWRemplacement direct sans redemarrage NGINX — nginx -t puis nginx -s reload

Votre flotte NGINX est-elle exposee a CVE-2026-42945 ?

Audit gratuit de 30 minutes : inventaire de vos versions NGINX, analyse de vos configurations rewrite, plan de patching adapte a votre stack.

Demander l audit gratuit

Predictions : l avenir de la securite NGINX

CVE-2026-42945 est un moment charnier pour la securite de NGINX et de l open source en general. Voici trois predictions sur ce qui va changer dans les 12 prochains mois.

Prediction 1 : F5 va accelerer le rewriting de modules critiques en memory-safe languages. Apres cette faille, la pression communautaire va s intensifier pour reecrire les modules les plus exposes (rewrite, proxy, ssl) dans un langage memory-safe comme Rust, a l instar de ce que fait le projet Rustls pour OpenSSL. Ce sera un chantier de 2 a 3 ans, mais CVE-2026-42945 est le declencheur.

Prediction 2 : les audits AI-assisted vont devenir standard pour les projets critiques. Le bug is_args est exactement le type de faille que les outils d analyse statique bases sur des LLM (comme les nouveaux modules de securite pipeline) peuvent detecter. Un LLM entraine sur la base de code NGINX avec un prompt specifique sur les mismatches d etat entre passes de calcul aurait probablement signale ce pattern. En 2027, les audits de code open source critique incluront systematiquement une passe AI en complement des audits humains.

Prediction 3 : les regulateurs europeens vont accelerer les exigences d audit pour les composants open source critiques. NIS2 et le Cyber Resilience Act imposent deja des obligations de diligence sur les logiciels critiques. 18 ans de faille non detectee dans un composant aussi central que NGINX va alimenter le debat sur le financement obligatoire d audits de securite pour les projets open source utilises dans les infrastructures essentielles.

Avis d expert #4 — La decouverte de vulnerabilites par IA change la donne

Google Project Zero et d autres equipes de recherche en securite experimentent deja des outils bases sur des LLM pour la decouverte de vulnerabilites. L outil Big Sleep de Google a trouve une faille dans SQLite que les fuzzers traditionnels avaient ratee. CVE-2026-42945 est exactement le type de bug ou l IA excelle : un mismatch d etat dans un moteur de scripting, invisible aux outils classiques mais detectable par un modele qui comprend la semantique du code. Dans les 2 ans, les projets open source majeurs integreront des scans AI dans leur CI/CD, et des failles comme NGINX Rift seront detectees en semaines, pas en decennies. La question est : qui va financer ces scans ? Les fondations open source, les gouvernements europeens via le CRA, ou les entreprises utilisatrices ?

FAQ : CVE-2026-42945 NGINX Rift

Qu est-ce que CVE-2026-42945 NGINX Rift exactement ?

CVE-2026-42945, surnommee NGINX Rift, est une vulnerabilite critique (CVSS 9.2) de type heap buffer overflow dans le module ngx_http_rewrite_module de NGINX. Elle affecte toutes les versions de 0.6.27 a 1.30.0, soit 18 ans de code vulnerable. Le bug reside dans le moteur ngx_http_script : le flag is_args est positionne pendant le calcul de longueur mais pas reinitialise, ce qui provoque une ecriture hors limites lors de l echappement URI au deuxieme passage. L exploitation active a ete confirmee par VulnCheck le 16 mai 2026, 3 jours apres la disclosure publique.

Comment savoir si mon serveur NGINX est vulnerable ?

Executez nginx -v pour verifier votre version. Toute version entre 0.6.27 et 1.30.0 incluse est vulnerable. Ensuite, verifiez votre configuration avec grep -rn 'rewrite' /etc/nginx/. Si vous utilisez des directives rewrite avec des captures non nommees (parentheses simples) et un point d interrogation dans le remplacement, suivies d un autre rewrite, if ou set, votre serveur est directement exploitable. Meme sans cette configuration specifique, le patch reste recommande car le module est charge par defaut et d autres vecteurs pourraient etre decouverts.

Quelle est la difference entre DoS et RCE dans ce contexte ?

Le DoS (denial of service) est le scenario le plus probable : le heap buffer overflow fait crasher le worker process NGINX, interrompant temporairement le service. NGINX peut redemarrer automatiquement le worker, mais des requetes repetees provoquent un DoS soutenu. Le RCE (remote code execution) est plus dangereux mais necessite que ASLR soit desactive sur le serveur — ce qui permet a l attaquant de predire les adresses memoire et de detourner l execution. Sur les systemes modernes avec ASLR active (valeur 2 dans /proc/sys/kernel/randomize_va_space), le RCE est significativement plus difficile. Le DoS seul reste critique pour la disponibilite de vos services.

Quelles mitigations appliquer si je ne peux pas patcher immediatement ?

La mitigation la plus efficace sans patch est de remplacer les captures PCRE non nommees par des captures nommees dans toutes vos directives rewrite. Par exemple, remplacez rewrite ^/app/(.*) /v2/$1?lang=fr par rewrite ^/app/(?P<path>.*) /v2/$path?lang=fr. Cette modification elimine le vecteur d exploitation sans necessiter de mise a jour du binaire NGINX. Testez avec nginx -t puis appliquez avec nginx -s reload. Le patch definitif vers NGINX 1.30.1 reste neanmoins necessaire car d autres vecteurs d exploitation pourraient etre decouverts.

Securisez votre infrastructure NGINX avant la prochaine CVE

Sprint d-open de 2 semaines : audit complet de vos configurations NGINX, patching automatise avec Ansible, monitoring CVE en continu, rapport NIS2-compliant. Formation equipe incluse.

Lancer le sprint securite NGINX