En bref

  • CVE-2026-23918, double-free dans mod_http2 d'Apache HTTP Server 2.4.66, CVSS 8.8
  • PoC public d'exécution de code à distance sur x86_64, exploitation DoS confirmée dans la nature
  • Correctif disponible en version 2.4.67, à appliquer immédiatement sur tous les frontaux web exposés

Les faits

La fondation Apache a publié le 5 mai 2026 un avis de sécurité concernant CVE-2026-23918, une vulnérabilité critique de type double-free affectant le module mod_http2 d'Apache HTTP Server en version 2.4.66. La faille a été corrigée dans la version 2.4.67 publiée le même jour. Le score CVSS attribué est de 8.8, mais plusieurs analystes considèrent ce score conservateur compte tenu de la trivialité du déclenchement et de l'existence d'un exploit fonctionnel pour l'exécution de code distante.

Le bug se situe dans le chemin de nettoyage de stream du multiplexeur HTTP/2, plus précisément dans la fonction h2_mplx.c. Il est déclenché lorsqu'un client envoie une trame HEADERS HTTP/2 immédiatement suivie d'une trame RST_STREAM avec un code d'erreur non nul, sur le même stream, avant que le multiplexeur n'ait fini d'enregistrer le stream. Le pool mémoire associé au stream est libéré une première fois par la routine de cleanup interne, puis une seconde fois par le path d'erreur appelé par RST_STREAM. La fenêtre de course est large et exploitable de manière fiable depuis un simple client HTTP/2 standard.

L'aspect le plus problématique de la faille est son très faible coût d'exploitation pour le déni de service. Une seule connexion TCP, deux trames HTTP/2, aucune authentification, aucun en-tête particulier, aucune URL spécifique : le worker Apache crashe et toutes les requêtes en cours sur ce processus sont perdues. Apache redémarre automatiquement le worker, mais l'attaquant peut maintenir la pression en envoyant en continu, ce qui transforme l'attaque en DoS soutenu sans nécessiter de bande passante particulière.

Pour l'exécution de code distante, le PoC publié le 6 mai par le chercheur Hadrian sur sa plateforme de recherche démontre une exploitation complète sur architecture x86_64 avec MPM event ou worker. La chaîne place une fausse structure h2_stream à l'adresse virtuelle libérée via un mmap reuse, pointe la fonction de cleanup du pool vers system(), et utilise la mémoire scoreboard d'Apache comme conteneur stable pour la fausse structure et la chaîne de commande. Le binaire vulnérable doit avoir été compilé sans CFI ni cookies de pile renforcés, ce qui reste le cas par défaut sur la majorité des distributions Linux.

Le module MPM prefork, qui correspond à l'ancien mode mono-thread d'Apache, n'est pas concerné. La vulnérabilité ne se manifeste que sur les MPM multi-threadés event ou worker, qui sont les configurations par défaut sur Debian, Ubuntu, Red Hat Enterprise Linux, Rocky, Alma et SUSE depuis plusieurs versions. Les conteneurs httpd:2.4.66 publiés sur Docker Hub avant le 5 mai sont également vulnérables et représentent une surface d'attaque conséquente compte tenu du tirage hebdomadaire de plusieurs millions d'images.

Côté exploitation observée, plusieurs équipes de réponse à incident ont confirmé des tentatives en masse depuis le 6 mai sur les honeypots HTTP/2 publics. Les patterns observés correspondent pour le moment à des exploits orientés DoS plus qu'à des tentatives de RCE, ce qui suggère un usage par des groupes d'extorsion DDoS plutôt que par des acteurs APT. Recorded Future et GreyNoise ont publié des règles de détection. Aucun groupe APT n'a été formellement attribué à ce stade, mais l'historique récent montre que ces fenêtres se referment vite.

L'écosystème impacté est large. Apache HTTP Server reste utilisé sur environ 22 % des serveurs web publics selon W3Techs, avec une concentration plus élevée dans le secteur public, l'éducation, et l'hébergement mutualisé. Plusieurs panneaux d'administration reposent sur Apache en frontal, notamment cPanel, Plesk et certaines anciennes installations DirectAdmin. Les distributions Linux ont publié leurs paquets corrigés dans les 48h : Red Hat a backporté le correctif sur RHEL 8 et 9, Debian sur stable et oldstable, Ubuntu sur les versions LTS encore supportées.

L'avis officiel d'Apache recommande l'upgrade direct vers la version 2.4.67. Pour les environnements où l'upgrade immédiat n'est pas possible, deux mitigations partielles existent : désactiver mod_http2 (avec un coût de performance non négligeable côté HTTP/2), ou basculer sur le MPM prefork. Aucune de ces mitigations n'est satisfaisante en production sur des charges modernes, ce qui rend l'application du correctif quasi inévitable à très court terme.

Impact et exposition

Tout serveur Apache HTTP Server 2.4.66 exposé sur Internet avec mod_http2 activé est exploitable. La condition d'exploitation ne requiert ni authentification, ni URL spécifique, ni vhost particulier. Le défaut affecte aussi bien les frontaux directs que les serveurs cachés derrière un reverse proxy si celui-ci forwarde le HTTP/2 ou ouvre une socket directe. Les environnements multi-tenants (hébergeurs mutualisés, plateformes de hosting universitaire) sont particulièrement exposés en raison du potentiel de pivot horizontal après une RCE.

Recommandations

  • Mettre à jour Apache HTTP Server vers 2.4.67 dès maintenant via le gestionnaire de paquets de votre distribution (apt, dnf, zypper)
  • Pour les images Docker httpd:2.4, repuller la dernière révision et reconstruire les images dérivées qui dépendent de la base
  • Si l'upgrade ne peut pas être fait immédiatement, désactiver mod_http2 (LoadModule http2_module commenté dans la configuration) et accepter le retour temporaire en HTTP/1.1
  • Activer la journalisation des trames HTTP/2 anormales (RST_STREAM avec code non nul immédiatement après HEADERS) au niveau du WAF ou du reverse proxy
  • Auditer la mémoire scoreboard et les processus Apache au démarrage pour détecter d'éventuelles persistance résiduelle après une exploitation antérieure

Alerte critique

Le PoC d'exécution de code distante est public depuis le 6 mai 2026. La fenêtre de patch est mesurée en jours, pas en semaines. Toute installation Apache 2.4.66 encore exposée 7 jours après la publication du correctif doit être considérée comme potentiellement compromise et nécessite une investigation forensique complète.

Comment vérifier si mon serveur Apache est concerné ?

Exécutez httpd -v ou apachectl -v pour obtenir la version installée. Si la sortie indique 2.4.66 ou une version antérieure avec mod_http2 actif (apachectl -M | grep http2), le serveur est vulnérable. Vérifiez également la directive Protocols dans votre configuration : la présence de h2 ou h2c indique que HTTP/2 est négociable, donc exploitable.

Mon serveur derrière Cloudflare est-il protégé ?

Partiellement. Cloudflare termine les connexions HTTP/2 côté edge et reforge des requêtes HTTP/1.1 vers l'origine par défaut. Si gRPC ou HTTP/2 to origin est explicitement activé, la chaîne d'exploitation reste possible. Dans tous les cas, un attaquant qui découvre l'IP réelle du backend peut contourner Cloudflare et frapper directement Apache. La règle reste : patcher l'origine.

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