En bref

  • CVE-2026-42945 « NGINX Rift » : heap buffer overflow dans ngx_http_rewrite_module, présent depuis 2008, CVSS 9.2 — découvert par un système d'analyse IA autonome chez depthfirst
  • Toutes les versions NGINX Open Source 0.6.27 à 1.30.0 et NGINX Plus R32 à R36 affectées, ainsi que 7 produits F5/NGINX
  • Patch disponible : NGINX 1.30.1 et NGINX Plus R37 (14 mai 2026) ; PoC de RCE avec bypass ASLR public depuis le 20 mai 2026

Les faits

En avril 2026, l'équipe de recherche de depthfirst a soumis le code source de NGINX à son système d'analyse autonome piloté par IA. Le résultat : CVE-2026-42945, surnommé NGINX Rift, un heap buffer overflow dans ngx_http_rewrite_module, le composant responsable du traitement des règles de réécriture d'URI. Score CVSS 3.1 : 9.2 (Critique). Ce qui rend la découverte exceptionnelle : le bug a été introduit dans NGINX version 0.6.27, publiée en 2008. Il était présent dans le code depuis 18 ans, invisible à tous les audits humains précédents.

Le mécanisme de déclenchement est un contrat de deux passes violé dans le moteur de script interne de NGINX. Lors du traitement d'une règle combinant les directives rewrite et set, le moteur effectue d'abord un calcul de la taille du buffer nécessaire, puis une phase de copie. Un flag d'état interne is_args, correctement positionné durant la phase de calcul, fuit dans la phase de copie. En combinant un groupe de capture PCRE sans nom avec un point d'interrogation dans le pattern de remplacement, la fonction ngx_escape_uri écrit au-delà de la taille du buffer alloué — un dépassement de heap aux conséquences critiques.

Un attaquant peut déclencher cette condition avec une seule requête HTTP craftée envoyée à un serveur NGINX dont la configuration contient une combinaison courante de directives rewrite et set — un pattern standard dans les configurations générées par Laravel Forge, Plesk, cPanel et les assistants de configuration WordPress. Sur les systèmes avec ASLR désactivé, l'exploitation conduit directement au RCE non authentifié. Sur les systèmes avec ASLR actif, elle entraîne à minima un déni de service.

Les chercheurs de depthfirst ont publié une chaîne d'exploitation complète démontrant le RCE même avec ASLR actif. La technique combine le heap overflow NGINX avec une primitive LFI (lecture de fichier arbitraire) présente sur le même hôte — condition fréquente dans les stacks web legacy. L'exploit bruteforce les adresses mémoire et filtre celles composées uniquement d'octets valides pour un URI, garantissant que l'adresse utilisée pour écraser le pointeur de cleanup survivra à la fonction d'échappement intacte. Un PoC fonctionnel baptisé Nginx-Rift est disponible publiquement depuis le 20 mai 2026.

L'étendue des versions affectées est considérable : NGINX Open Source 0.6.27 à 1.30.0 (la quasi-totalité des versions déployées depuis 2008), NGINX Plus R32 à R36, et sept lignes de produits F5 dérivées. NGINX est le serveur web et reverse proxy le plus déployé au monde avec une part de marché supérieure à 34 % selon Netcraft (données 2026). Picus Security estime que la majorité des configurations NGINX de production actives présentent la combinaison de directives vulnérable.

La condition de déclenchement mérite une attention particulière : les directives rewrite et set combinées avec des groupes de capture PCRE constituent un pattern standard dans d'innombrables configurations de production. Les frameworks PHP (Laravel, Symfony), les CMS (WordPress, Drupal), les reverse proxies applicatifs — tous génèrent ou recommandent des configurations NGINX incluant ces patterns. Il ne s'agit pas d'une configuration exotique : c'est la configuration de production standard de millions de sites en production.

Le patch est disponible dans NGINX Open Source 1.30.1 et NGINX Plus R37, publiés le 14 mai 2026. F5 a également publié des correctifs pour l'ensemble de ses produits concernés. Pour les environnements ne pouvant pas être mis à jour immédiatement, une mitigation temporaire consiste à réécrire les règles de réécriture pour éviter les groupes de capture PCRE anonymes — mitigation complexe à mettre en œuvre sans expertise NGINX approfondie, et non substituable au patch.

Des exploitations actives ont été observées dans la nature depuis la semaine du 19 mai 2026, selon Cyberpress, ciblant principalement des serveurs NGINX exposés sur Internet avec des applications Laravel et WordPress sans WAF devant eux. La découverte de NGINX Rift par un système IA autonome soulève une question de fond : combien de bugs similaires, introduits il y a des décennies dans des composants critiques d'infrastructure, attendent encore d'être découverts par ce type d'analyse ?

Impact et exposition

Tout serveur NGINX dont la configuration contient des directives rewrite et set combinées à des groupes de capture PCRE est exposé au déni de service. Le RCE complet est conditionnel à la présence d'une primitive LFI sur le même hôte ou à l'absence d'ASLR. Les distributions Linux modernes activent ASLR par défaut (/proc/sys/kernel/randomize_va_space = 2), mais la chaîne d'exploitation avec bypass ASLR publiée rend cette protection insuffisante en présence d'une LFI locale.

Recommandations

  • Mise à jour NGINX : passer à NGINX 1.30.1 Open Source ou NGINX Plus R37 ; vérifier la version avec nginx -v
  • Audit des configurations : identifier toutes les règles rewrite combinées avec set dans vos fichiers de configuration NGINX
  • Vérification ASLR : s'assurer que ASLR est actif (cat /proc/sys/kernel/randomize_va_space doit retourner 2)
  • Règles WAF : Cloudflare, Akamai et AWS WAF ont publié des signatures spécifiques à CVE-2026-42945 — vérifier que les règles managées sont activées et à jour
  • Monitoring des logs : surveiller les logs d'accès NGINX pour des requêtes avec des URI anormaux ciblant les endpoints de réécriture

Alerte critique

Un PoC de RCE non authentifié est public depuis le 20 mai 2026. Si votre NGINX est exposé sur Internet avec des règles de réécriture et n'a pas été mis à jour vers la version 1.30.1, la fenêtre d'exploitation est ouverte. Traitez cette mise à jour comme une urgence P1.

Mon NGINX est derrière un CDN ou un WAF — suis-je protégé contre CVE-2026-42945 ?

Partiellement. Un WAF avec une signature à jour peut bloquer les requêtes craftées connues mais pas toutes les variantes. Cloudflare, Akamai et AWS WAF ont publié des règles spécifiques — vérifiez qu'elles sont activées. Si votre NGINX origin est accessible directement (IP exposée, accès interne), il reste vulnérable. Le patch reste indispensable.

Votre infrastructure est-elle exposée ?

Ayi NEDJIMI réalise des audits de sécurité ciblés pour identifier et corriger vos vulnérabilités avant qu'elles ne soient exploitées.

Demander un audit