CVE-2026-42945 "NGINX Rift" : heap buffer overflow critique présent depuis 18 ans
CVSS 9.2 - nginx 0.6.27 à 1.30.0 affecté - PoC public depuis le 13 mai 2026. Ce que vous devez vérifier maintenant.

Article informatif - sources publiques
Cet article est basé exclusivement sur des sources publiques : advisory F5/nginx, NVD, SC Media, Picus Security, AlmaLinux et SOCPrime. L'objectif est d'informer les administrateurs et équipes IT sur la nature de la vulnérabilité et les actions correctives disponibles.
Alerte critique - PoC public disponible
Un proof-of-concept fonctionnel est publiquement disponible sur GitHub depuis le 13 mai 2026. Les scans automatisés exploitant cette vulnérabilité sont déjà actifs selon les honeypots de la communauté. Si votre nginx n'est pas encore patché, considérez cette action comme prioritaire.
Le 13 mai 2026, F5 a publié un advisory coordonné révélant CVE-2026-42945, surnommé "NGINX Rift" par la communauté. Cette vulnérabilité de type heap buffer overflow dans le module ngx_http_rewrite_module de nginx était présente dans le code source depuis 18 ans - depuis la version 0.6.27 sortie en 2008. Son score CVSS est de 9.2 sur 10, la plaçant dans la catégorie Critique.
nginx est le serveur web et reverse proxy le plus déployé au monde avec plus de 34% de part de marché selon Netcraft (mai 2026). La surface d'exposition de cette vulnérabilité est donc considérable. Cet article détaille la nature technique de la faille, les conditions d'exploitation, les versions affectées et les étapes concrètes pour vérifier et sécuriser votre infrastructure.
1. Contexte et découverte : 18 ans dans le code
CVE-2026-42945 a été découverte et divulguée de façon responsable le 21 avril 2026 par des chercheurs en sécurité. F5 (éditeur de nginx) a été notifié immédiatement et a publié la correction ainsi que l'advisory officiel le 13 mai 2026, soit 22 jours après la divulgation initiale - un délai de traitement dans la norme pour une vulnérabilité de cette criticité.
La faille existe dans le code de nginx depuis la version 0.6.27, publiée en novembre 2008. Dix-huit ans de cycles de release, d'audits de sécurité et de revues de code n'ont pas permis de l'identifier - ce qui illustre la difficulté de détecter des bugs de type size-mismatch dans des parseurs de chaînes complexes, surtout lorsque la condition de déclenchement requiert une combinaison spécifique de directives.
9.2
Score CVSS v3.1 (Critique)
18 ans
Présente depuis nginx 0.6.27 (2008)
34%
Part de marché nginx (Netcraft mai 2026)
PoC
Public sur GitHub depuis le 13/05/2026
Source : NVD - CVE-2026-42945 / SC Media - NGINX Rift
2. Analyse technique : la cause racine du heap overflow
La vulnérabilité réside dans un size-mismatch entre deux passes sur la chaîne de remplacement d'une directive rewrite. Plus précisément, lorsque trois conditions sont réunies simultanément :
Condition 1 - Capture PCRE anonyme
La directive rewrite utilise une capture anonyme PCRE - c'est-à-dire $1, $2, etc. - dans la chaîne de remplacement. Les captures nommées ((?P<name>...)) ne sont pas affectées.
Condition 2 - Point d'interrogation dans le remplacement
La chaîne de remplacement contient un point d'interrogation (?), typiquement pour passer des paramètres de requête. Exemple : rewrite ^/old/(.*)$ /new/$1?redirected=1.
Condition 3 - Directive suivante rewrite / if / set
Cette directive rewrite vulnérable est immédiatement suivie d'une autre directive rewrite, if ou set. C'est la combinaison des deux passes consécutives qui crée le désalignement mémoire.
Quand ces trois conditions sont réunies, nginx calcule la taille du buffer de destination en utilisant une méthode d'échappement, mais écrit le résultat en utilisant une méthode différente. Ce désalignement provoque un dépassement de tampon sur le heap du processus worker nginx.
Source technique : Picus Security - analyse détaillée CVE-2026-42945 / SOCPrime - NGINX Rewrite Flaw
3. Impact réel : DoS ou RCE selon la configuration système
L'impact de CVE-2026-42945 dépend directement de la configuration de sécurité mémoire du système hôte.
ASLR actif (valeur 1 ou 2) - Risque modéré
- - Crash du processus worker nginx
- - Déni de service temporaire (DoS)
- - nginx redémarre automatiquement le worker
- - RCE très difficile à exploiter de façon fiable
- - La plupart des Linux modernes ont ASLR=2
ASLR désactivé (valeur 0) - Risque critique
- - Exécution de code arbitraire possible (RCE)
- - Compromission totale du processus nginx
- - Accès potentiel aux données en mémoire
- - Pivot vers d'autres services internes
- - Cas rare mais existant sur VPS mal configurés
Vérifiez votre niveau ASLR en une commande :
cat /proc/sys/kernel/randomize_va_space
Résultat attendu : 2 (protection maximale). Si 0 : activer avec sysctl -w kernel.randomize_va_space=2
Source : SecurityOnline - RCE PoC disclosure / Broadcom Tanzu - analyse impact
4. Vérifier votre exposition en 3 commandes
Avant de patcher, vérifiez si votre configuration est réellement exposée. Deux facteurs déterminent le risque réel : la version nginx et la présence du pattern vulnérable dans la config.
Étape 1 - Vérifier la version nginx
nginx -v
Si la version affichée est entre 0.6.27 et 1.30.0 : version vulnérable. Versions 1.26.3+ (stable) et 1.28.0+ (mainline) sont corrigées.
Étape 2 - Chercher les directives rewrite avec captures anonymes et "?"
grep -rn 'rewrite' /etc/nginx/ | grep -v '#' | grep '\$[0-9]' | grep '?'
Si cette commande retourne des résultats, votre config contient le pattern vulnérable. Aucun résultat = risque faible même en version non patchée.
Étape 3 - Vérifier l'ASLR
cat /proc/sys/kernel/randomize_va_space
Valeur 2 = protection maximale, RCE très difficile. Valeur 0 = vulnérable au RCE, activer immédiatement.
5. Patcher CVE-2026-42945 selon votre distribution
Le patch officiel est disponible depuis le 13 mai 2026. La disponibilité dans les gestionnaires de paquets varie selon la distribution. Source : AlmaLinux - nginx patché disponible / Axonius - identifier les assets vulnérables
| Distribution | Statut patch (mai 2026) | Commande |
|---|---|---|
| nginx.org (officiel) | Patché - 1.26.3 / 1.28.0 | Ajouter dépôt nginx.org + apt install nginx |
| Ubuntu 24.04 LTS | Backport disponible | apt update && apt upgrade nginx |
| Debian 12 (bookworm) | En attente (1.22.1 stable) | Ajouter dépôt nginx.org mainline |
| AlmaLinux / RHEL 9 | Patché - testing disponible | dnf update nginx |
| NGINX Plus R32-R36 | Patché - R37 disponible | Mise à jour via portail F5 |
Mitigation temporaire si le patch n'est pas encore disponible sur votre distribution : remplacer toutes les captures anonymes par des captures nommées dans vos directives rewrite.
Avant (pattern vulnérable) :
rewrite ^/(.*)$ /$1?v=2 last;
Après (pattern safe) :
rewrite ^/(?P<path>.*)$ /${path}?v=2 last;
Source : recommandation officielle F5 / OpenCVE - CVE-2026-42945
FAQ - CVE-2026-42945 NGINX Rift
Qu'est-ce que CVE-2026-42945 NGINX Rift ?
CVE-2026-42945 est une vulnérabilité de type heap buffer overflow dans le module ngx_http_rewrite_module de nginx. Présente depuis 18 ans (nginx 0.6.27), elle a été patchée le 13 mai 2026. Son score CVSS est de 9.2. Elle peut provoquer un crash du worker nginx (DoS) ou, sur des systèmes sans ASLR, une exécution de code à distance.
Quelles versions de nginx sont affectées ?
Toutes les versions nginx Open Source de 0.6.27 à 1.30.0 inclus. NGINX Plus R32 à R36. Les versions corrigées sont 1.26.3 (stable) et 1.28.0+ (mainline). Vérifiez avec : nginx -v
Comment savoir si mon serveur est vulnérable ?
Deux conditions : version nginx entre 0.6.27 et 1.30.0, ET présence d'une directive rewrite avec capture anonyme ($1/$2) + point d'interrogation + directive suivante rewrite/if/set. Sans ce pattern dans la config, le risque est faible même en version non patchée.
Comment patcher sur Debian 12 (bookworm) ?
Le dépôt Debian stable n'a pas encore intégré la version corrigée. Il faut ajouter le dépôt nginx.org mainline, puis lancer apt install nginx. La version installée passera à 1.27.x ou 1.28.x, hors de la plage vulnérable.
Quelle est la mitigation temporaire ?
Remplacer les captures anonymes ($1, $2) par des captures nommées dans toutes vos directives rewrite. Exemple : remplacer rewrite ^/(.*)$ /$1?v=2 par rewrite ^/(?P<path>.*)$ /${path}?v=2. Vérifier également que l'ASLR est actif (valeur 2 dans /proc/sys/kernel/randomize_va_space).
Sources
NVD - CVE-2026-42945 Detail - National Vulnerability Database, NIST
NGINX Rift : analyse technique complète - Picus Security
NGINX Rift - patch disponible dans testing - AlmaLinux Blog
CVE-2026-42945 : Critical NGINX Rewrite Flaw - SOCPrime
Critical 18-Year-Old NGINX RCE - PoC Disclosed - SecurityOnline
Critical NGINX Rift vulnerability, 18 years old - SC Media
Identify & fix vulnérable assets - Axonius
Critical NGINX RCE vulnerability CVE-2026-42945 - Broadcom Tanzu
Votre infrastructure nginx est-elle exposée ?
Nos experts vérifient votre configuration nginx, votre version, vos directives rewrite et votre niveau ASLR en moins de 24h. Si une exposition est détectée, nous vous guidons pas à pas pour patcher sans interruption de service.