Une vulnérabilité NGINX vieille de 18 ans expose les serveurs Web aux attaques DoS et potentiellement RCE
Une vulnérabilité critique présente dans **NGINX** depuis près de deux décennies a été découverte, posant un risque important d'attaques par déni de service (DoS) et, dans certaines conditions, d'exécution de code à distance (RCE). Suivie sous la référence **CVE-2026-42945**, cette faille souligne les défis persistants du maintien d'écosystèmes logiciels sécurisés.

Une faille vieille de 18 ans dans le serveur Web open-source **NGINX**, découverte à l'aide d'un système de scan autonome, peut être exploitée pour un déni de service et, dans certaines conditions, pour une exécution de code à distance.
La vulnérabilité est suivie sous la référence **CVE-2026-42945** et a reçu une note de sévérité critique de 9,2, basée sur la dernière version du Common Vulnerability Scoring System (**CVSS**).
Trois autres problèmes de sécurité liés à la corruption de mémoire ont été découverts lors de la même session de scan de code de six heures par des chercheurs de la société de sécurité native IA **DepthFirst AI**.
**NGINX** est une plateforme de serveur Web et de proxy inverse massivement utilisée, alimentant un tiers des sites Web les mieux classés. Il peut équilibrer efficacement la charge en distribuant le trafic réseau entrant vers plusieurs serveurs backend et réduire les temps de chargement en mettant en cache le contenu.
Propriété et maintenu par la société technologique américaine **F5**, ce serveur Web est utilisé par les fournisseurs de cloud, les entreprises SaaS, les banques, les plateformes médiatiques, les sites de commerce électronique et dans les clusters Kubernetes.
**CVE-2026-42945** est un dépassement de tampon heap dans `ngx_http_rewrite_module` affectant les versions de **NGINX** 0.6.27 à 1.30.0, qui se trouve dans le code du projet depuis environ 18 ans.
Selon **DepthFirst**, la vulnérabilité peut être déclenchée lorsque les configurations **NGINX** utilisent à la fois les directives ‘rewrite’ et ‘set’, un schéma que les chercheurs qualifient de courant dans les passerelles API et les configurations de proxy inverse.
La faille découle d'une gestion d'état incohérente dans le moteur de script interne de **NGINX**, qui traite les réécritures en deux passes : une pour calculer la quantité de mémoire à allouer, et une pour copier les données réelles.
Un indicateur ‘is_args’ reste activé après une réécriture contenant ‘?’, ce qui amène **NGINX** à calculer la taille du tampon en utilisant les longueurs d'URI non échappées, mais à écrire plus tard des données échappées plus grandes comme ‘+’ et ‘&’, entraînant un dépassement de tampon heap.
Les chercheurs ont démontré une exécution de code non authentifiée via des requêtes HTTP spécialement conçues qui corrompent les structures adjacentes du pool de mémoire **NGINX**, écrasent les pointeurs des gestionnaires de nettoyage, injectent de fausses structures en mémoire via les corps de requêtes POST, et forcent **NGINX** à exécuter `system()` lors du nettoyage du pool.
Cependant, l'exécution de code à distance a été obtenue sur un système où la protection Address Space Layout Randomization (**ASLR**) contre les attaques basées sur la mémoire était désactivée. Cette défense est active par défaut, mais elle peut être désactivée pour améliorer les performances dans certains environnements, tels que les systèmes embarqués et les machines virtuelles utilisées pour l'analyse.
**DepthFirst** note que l'architecture multiprocessus de **NGINX** facilite l'exploitation car les processus workers héritent de dispositions mémoire quasi identiques du processus maître, permettant une manipulation fiable du heap et des tentatives répétées si un worker plante.
« Si notre exploit échoue et plante un worker, le processus maître en lance simplement un nouveau avec la même disposition mémoire », expliquent les chercheurs.
« Cela nous permet d'essayer plusieurs fois en toute sécurité jusqu'à ce que nous réussissions, sans nous soucier que le worker plante et modifie la disposition mémoire. »
« Théoriquement, nous pourrions exploiter cette conception pour fuir l'**ASLR** (Address Space Layout Randomization) en écrasant progressivement les pointeurs octet par octet. »
Les trois autres failles découvertes par **DepthFirst** ont reçu une note de sévérité moyenne :
* **CVE-2026-42946** — allocation mémoire excessive dans les modules SCGI/UWSGI pouvant planter les workers via des allocations d'environ 1 To (sévérité élevée)
* **CVE-2026-40701** — use-after-free dans la gestion de la résolution DNS OCSP asynchrone (sévérité moyenne)
* **CVE-2026-42934** — bug de parsing UTF-8 off-by-one provoquant des lectures hors limites (sévérité moyenne)
### Impact et Correctifs
Les vulnérabilités ont été découvertes le 18 avril 2026 et signalées au vendeur le 21 avril.
Selon l'avis de sécurité de **F5**, publié hier, les failles affectent les versions **NGINX** suivantes :
* **NGINX** Open Source versions 0.6.27 à 1.30.0
* **NGINX** Plus R32 à R36
* **NGINX** Instance Manager 2.16.0 à 2.21.1
* **F5** WAF pour **NGINX** 5.9.0 à 5.12.1
* **NGINX** App Protect WAF 4.9.0 à 4.16.0 et 5.1.0 à 5.8.0
* **F5** DoS pour **NGINX** 4.8.0
* **NGINX** App Protect DoS 4.3.0 à 4.7.0
* **NGINX** Gateway Fabric 1.3.0 à 1.6.2 et 2.0.0 à 2.5.1
* **NGINX** Ingress Controller 3.5.0 à 3.7.2, 4.0.0 à 4.0.1, et 5.0.0 à 5.4.1
Des correctifs ont été rendus disponibles dans **NGINX** Open Source 1.31.0 et 1.30.1, **NGINX** Plus R36 P4, et **NGINX** Plus R32 P6.
Pour ceux qui ne peuvent pas mettre à niveau, **F5** recommande de remplacer les groupes de capture PCRE non nommés ($1, $2, etc.) dans les règles ‘rewrite’ vulnérables par des captures nommées, ce qui élimine le principal prérequis d'exploitation.
### Exploitabilité dans le Monde Réel
Certains chercheurs en sécurité ont contesté les affirmations d'exploitabilité dans le monde réel concernant **CVE-2026-42945**, arguant que la preuve de concept de **DepthFirst** repose sur des conditions très spécifiques qui ne sont pas couramment présentes dans les déploiements par défaut.
Le chercheur Kevin Beaumont a souligné que l'exploitation nécessite une configuration **NGINX** vulnérable utilisant des modèles de réécriture particuliers, que l'attaquant doit connaître ou découvrir le point d'accès affecté, et que la PoC RCE publiée a été testée avec l'**ASLR** désactivé.
Beaumont a insisté sur le fait que l'exploit des chercheurs a été construit contre une configuration délibérément vulnérable et ne démontre pas une exécution de code fiable contre des systèmes réels durcis.

**AlmaLinux** a fait écho d'une évaluation similaire dans son avis, après avoir reproduit indépendamment la faille.
Les mainteneurs de la distribution Linux ont confirmé qu'il est trivial et fiable de planter les processus workers **NGINX** via une requête conçue, rendant les attaques par déni de service réalistes.
Cependant, ils ont déclaré que transformer le dépassement de tampon heap en une exécution de code à distance fiable sur des systèmes avec l'**ASLR** activé « n'est pas trivial », et ils ne s'attendent pas à ce qu'un exploit générique et fiable émerge des travaux de **Depthfirst**.
Dans le même temps, **AlmaLinux** a averti que « pas facile » ne signifie pas impossible, et le potentiel de DoS est suffisant en soi pour considérer le problème comme urgent.
## Le fossé de validation : les tests d'intrusion automatisés répondent à une seule question. Vous en avez besoin de six.
Les outils de tests d'intrusion automatisés apportent une réelle valeur, mais ils ont été conçus pour répondre à une seule question : un attaquant peut-il se déplacer sur le réseau ? Ils n'ont pas été conçus pour tester si vos contrôles bloquent les menaces, si vos règles de détection se déclenchent, ou si vos configurations cloud tiennent bon.
Ce guide couvre les 6 surfaces que vous devez réellement valider.
[Télécharger maintenant](https://hubs.li/Q048zztN0)