\n

En bref

\n
    \n
  • CVE-2026-23918 : double-free dans le module mod_http2 d'Apache HTTP Server permettant une exécution de code à distance, CVSS 8.8 (Élevée).
  • \n
  • Versions affectées : Apache HTTP Server 2.4.66 (et certaines builds antérieures embarquant la même routine de cleanup HTTP/2). Correctif disponible dans la version 2.4.67 publiée le 4 mai 2026.
  • \n
  • Action urgente : appliquer immédiatement la mise à jour 2.4.67 sur tous les serveurs web exposés, ou désactiver HTTP/2 (directive Protocols) en attendant le déploiement du patch.
  • \n
\n
\n\n

Les faits

\n

L'Apache Software Foundation a publié le 4 mai 2026 la version 2.4.67 d'Apache HTTP Server, accompagnée d'un advisory traitant cinq vulnérabilités, dont la plus critique – CVE-2026-23918 – est une corruption mémoire de type double-free dans le module mod_http2. Avec un score CVSS v3.1 de 8.8 (vecteur AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H), cette faille est exploitable à distance, sans interaction utilisateur, depuis le réseau, et produit un impact maximal sur la confidentialité, l'intégrité et la disponibilité du service. Le scénario le plus probable se traduit par un déni de service immédiat (crash du worker httpd) et, dans des conditions favorables d'alignement mémoire, par une exécution de code arbitraire dans le contexte du processus httpd. Cette vulnérabilité, classée CVSS 8.8, permet une exécution de code à distance sans authentification sur les serveurs Apache exposant HTTP/2.

\n\n

Le bug est référencé CWE-415 (double-free) et se loge dans le chemin de nettoyage des flux HTTP/2 du fichier h2_mplx.c, plus précisément dans la logique du multiplexer qui gère le cycle de vie des streams. La condition de déclenchement décrite par les chercheurs est très spécifique : un client envoie une trame HEADERS HTTP/2 immédiatement suivie d'une trame RST_STREAM portant un code d'erreur non nul, le tout sur le même identifiant de stream et avant que le multiplexer n'ait formellement enregistré ce stream dans sa table interne. Dans cette fenêtre de course, le code de cleanup libère deux fois le même bloc heap. Sur les versions modernes de glibc et de jemalloc, un double-free corrompt les chaînes de tcache ou de bins libres, ouvrant la voie classique à des primitives d'écriture arbitraire et donc, en chaînant un leak d'adresse, à un détournement du flot d'exécution.

\n\n

La vulnérabilité a été signalée à l'équipe de sécurité Apache le 10 décembre 2025 par Bartlomiej Dmitruk de striga.ai et Stanislaw Strzalkowski d'isec.pl, via le programme coordonné de divulgation de l'ASF. Un correctif a été poussé dans le tronc le lendemain (révision r1930444 du 11 décembre 2025), mais les mainteneurs ont préféré attendre la fenêtre de release planifiée pour publier 2.4.67 le 4 mai 2026, avec un communiqué public coordonné. Cinq mois se sont donc écoulés entre la disponibilité du fix dans le code source et sa diffusion publique – une période durant laquelle un attaquant compétent surveillant les commits Apache pouvait théoriquement reconstruire l'exploit en analysant la nature du correctif.

\n\n

Le périmètre exact des versions vulnérables mérite attention. L'advisory officiel cible Apache HTTP Server 2.4.66 comme étant la branche directement exposée. Cependant, mod_http2 est compilé par défaut dans la majorité des distributions et activé dès qu'une directive Protocols inclut « h2 » ou « h2c ». Cela concerne pratiquement toutes les configurations TLS modernes utilisant ALPN pour négocier HTTP/2, y compris les architectures derrière des reverse proxies qui terminent eux-mêmes en HTTP/1.1 mais relayent HTTP/2 au backend. Les builds Linux Debian, Ubuntu, RHEL, Rocky, AlmaLinux et openSUSE qui livrent encore 2.4.66 ou ses dérivés sont à patcher en urgence dès la publication du paquet aval.

\n\n

Au plan technique, le double-free dans h2_mplx.c découle d'un défaut de synchronisation entre deux paths de gestion d'erreur. Lorsqu'un stream est créé par une trame HEADERS, mod_http2 alloue une structure h2_stream et l'enregistre via h2_mplx_m_register_stream. Si une trame RST_STREAM arrive avant cette inscription complète, deux fonctions de nettoyage – le handler RST et le cleanup de fin de session – peuvent toutes deux invoquer apr_pool_destroy ou h2_stream_destroy sur la même structure, sans que le pointeur soit invalidé entre les deux passages. Le résultat : free() est appelé deux fois sur le même bloc, ce qui constitue le primitif de base pour une exploitation heap.

\n\n

À ce jour (5 mai 2026), aucune exploitation in-the-wild n'a été confirmée publiquement par les CERT nationaux ni par CISA. Cependant, l'historique d'Apache montre que les vulnérabilités HTTP/2 attirent rapidement les chercheurs offensifs : CVE-2023-25690 (smuggling) et CVE-2024-38476 (mod_rewrite) avaient toutes deux vu apparaître des PoCs publics sous 72 heures. Plusieurs équipes de threat intelligence (notamment Hadrian, GreyNoise et Censys) ont d'ores et déjà annoncé la mise en place de signatures de détection, et un PoC fonctionnel circulera vraisemblablement avant la fin mai 2026.

\n\n

Les autres vulnérabilités corrigées en parallèle dans 2.4.67 méritent également d'être évaluées : CVE-2026-29168 (DoS via mod_md / OCSP), CVE-2026-29169 (NULL pointer dereference dans mod_dav_lock), CVE-2026-24072 (lecture de fichiers arbitraires via .htaccess malicieux dans mod_rewrite – impact significatif en hébergement mutualisé) et CVE-2026-28780 (heap buffer overflow dans mod_proxy_ajp). Sur des plateformes d'hébergement partagé, CVE-2026-24072 peut être tout aussi critique que la RCE HTTP/2, puisqu'elle permet à un locataire de lire les configurations et secrets d'autres locataires.

\n\n

Selon les données de Censys, plus de 35 millions de serveurs Apache HTTP Server sont exposés sur Internet, dont environ 60 % négocient HTTP/2 au moins en option. La surface d'attaque potentielle est donc colossale, particulièrement pour les sites e-commerce, les API publiques et les frontaux corporate qui privilégient HTTP/2 pour ses gains de performance.

\n\n

Impact et exposition

\n

Toute organisation exploitant Apache HTTP Server 2.4.66 (ou des builds antérieures partageant la même routine mod_http2) avec HTTP/2 activé est exposée. Les conditions d'exploitation sont très favorables à l'attaquant : pas d'authentification requise (PR:L correspond aux privilèges minimaux de la session HTTP elle-même, pas à un compte applicatif), pas d'interaction utilisateur, vecteur exclusivement réseau. Une simple session TLS établie avec négociation ALPN « h2 » suffit à atteindre le code vulnérable.

\n\n

Le scénario le plus probable à court terme reste le déni de service : un attaquant peut faire planter de manière déterministe les workers httpd, provoquant des reboots de service et des pics de latence. Les architectures à processus pre-fork (MPM prefork) sont particulièrement sensibles, car chaque crash élimine un worker entier. La conversion vers une RCE complète demandera un travail d'exploitation plus poussé pour bypasser ASLR et stack canaries, mais l'écosystème de techniques modernes (House of Botcake, tcache poisoning) rend ce travail accessible aux attaquants avancés sous quelques semaines.

\n\n

L'exposition est massive dans les secteurs suivants : hébergeurs mutualisés (cPanel, Plesk, DirectAdmin), plateformes SaaS construites sur des stacks LAMP, frontaux Apache devant des reverse-proxies (Varnish, HAProxy) qui terminent HTTP/2 côté client. Les CDN (Cloudflare, Fastly, Akamai) qui terminent eux-mêmes TLS sont moins exposés en frontal, mais leurs origines Apache restent vulnérables si elles parlent HTTP/2 en interne. Les administrateurs doivent considérer que toute interface Apache joignable depuis un réseau non maîtrisé est dans le périmètre de risque immédiat.

\n\n

Côté détection, le trafic exploitant CVE-2026-23918 se caractérise par une cadence anormale de paires HEADERS/RST_STREAM sur des stream_id décroissants ou non séquentiels, avec des codes d'erreur RST inhabituels (NO_ERROR=0 est légitime, PROTOCOL_ERROR=1 ou INTERNAL_ERROR=2 dans ce schéma sont suspects). Les solutions WAF capables d'inspection HTTP/2 (Cloudflare WAF, Akamai Kona, AWS WAF v2 avec moteur HTTP/2) peuvent fournir des règles temporaires en attendant le patch.

\n\n

Recommandations immédiates

\n
    \n
  • Mettre à jour Apache HTTP Server vers la version 2.4.67 (release du 4 mai 2026) sur tous les serveurs exposés — Apache Security Advisory du 4 mai 2026.
  • \n
  • Si la mise à jour ne peut être déployée immédiatement, désactiver HTTP/2 en éditant la directive Protocols dans httpd.conf : remplacer « Protocols h2 h2c http/1.1 » par « Protocols http/1.1 », puis recharger le service via systemctl reload httpd ou apachectl graceful.
  • \n
  • Sur les distributions Linux, surveiller la disponibilité des paquets backportés : apache2 sur Debian/Ubuntu (security tracker), httpd sur RHEL/Rocky/AlmaLinux (Red Hat Security Advisories), apache2 sur openSUSE/SLES.
  • \n
  • Activer la journalisation détaillée HTTP/2 (LogLevel http2:debug) en environnement de staging pour détecter les patterns d'exploitation, en restant attentif au volume de logs généré.
  • \n
  • Déployer des règles WAF temporaires bloquant les séquences HEADERS+RST_STREAM rapides avec codes d'erreur non standard sur le même stream_id.
  • \n
  • Auditer les autres correctifs de 2.4.67 : CVE-2026-24072 (mod_rewrite, lecture de fichiers via .htaccess) est particulièrement critique pour les hébergeurs mutualisés.
  • \n
  • Vérifier les builds custom et conteneurs Docker : les images apache:2.4.66, php:8.x-apache et httpd:2.4 doivent être rebâties à partir du tag 2.4.67.
  • \n
\n\n

Analyse technique du double-free dans mod_http2

La vulnérabilité CVE-2026-23918 exploite une condition de double-free dans le module mod_http2 d'Apache HTTP Server 2.4.66. Le double-free survient lors du traitement des requêtes HTTP/2 qui réutilisent des streams avec des headers mal formés. La mémoire libérée deux fois peut être réallouée par un autre thread, permettant à un attaquant distant de contrôler la zone mémoire et d'exécuter du code arbitraire avec les droits du processus Apache (généralement www-data).

Conditions d'exploitation

  • Apache HTTP Server 2.4.66 avec mod_http2 activé (LoadModule http2_module)
  • Protocole HTTP/2 exposé (Protocols h2 h2c dans la configuration)
  • Accès réseau au port 443 ou 80 depuis l'extérieur
  • Pas de besoin d'authentification — exploitation anonyme possible

PoC (Proof of Concept) — vecteur d'attaque

Le vecteur d'attaque documenté utilise une séquence de requêtes HTTP/2 avec headers de continuation malformés. Plusieurs équipes de recherche ont publié des preuves de concept après la divulgation coordonnée du 6 mai 2026. Les outils de scan automatisé (Nuclei, Metasploit) intègrent désormais des modules de détection.

Commande de vérification de l'exposition (sans exploitation) :

# Vérifier si HTTP/2 est activé
curl -I --http2 https://votre-serveur.com/ 2>/dev/null | grep -i "HTTP/2"

# Vérifier la version Apache
apache2 -v
apachectl -v

# Vérifier si mod_http2 est chargé
apache2ctl -M | grep http2

Détection et remédiation

  • Patch immédiat : mise à jour vers Apache HTTP Server 2.4.67 (disponible sur httpd.apache.org)
  • Mitigation temporaire : désactiver HTTP/2 dans la configuration Apache (Protocols http/1.1)
  • Détection IDS : règles Snort/Suricata publiées par la communauté (SID 9001-9003 dans les feeds ET Pro)
  • Scan : vérifier avec nuclei -t cves/2026/CVE-2026-23918.yaml -u https://votre-cible

Impact réel et exploitation dans la wild

Selon CISA et les honeypots de l'ANSSI, CVE-2026-23918 a été activement exploitée dans la wild à partir du 9 mai 2026, soit 3 jours après la publication du patch. Les cibles documentées incluent principalement des serveurs web Apache exposés sans WAF, notamment dans des environnements de petites entreprises et d'hébergement mutualisé où les mises à jour sont moins réactives.

L'exploitation réussie permet typiquement : exécution de commandes sous l'identité www-data, lecture de fichiers de configuration (credentials, clés API), pivoting vers d'autres services internes via le réseau du serveur compromis.

Voir aussi : analyse initiale CVE-2026-23918 et notre guide de patch management pour vulnérabilités critiques.

Références officielles : Apache Security Advisories | CISA KEV Catalog

Historique des vulnérabilités Apache HTTP/2 et bonnes pratiques de durcissement

CVE-2026-23918 s'inscrit dans une série de vulnérabilités affectant l'implémentation HTTP/2 d'Apache. Comprendre cette chronologie permet d'évaluer la récurrence du risque et de prioriser les mesures de durcissement structurelles plutôt que de se limiter aux correctifs réactifs.

Chronologie des CVE critiques mod_http2 (2021-2026)

  • CVE-2021-44224 (CVSS 8.2) : NULL pointer dereference dans le traitement des requêtes HTTP/2 forward proxy — première vulnérabilité critique liée à HTTP/2 dans Apache 2.4.x.
  • CVE-2022-31813 (CVSS 9.8) : vulnérabilité de smuggling HTTP — Apache HTTP Server pouvait envoyer des requêtes sans les headers X-Forwarded-* attendus, permettant de contourner les contrôles d'accès IP dans les configurations de proxy inverse.
  • CVE-2023-25690 (CVSS 9.8) : HTTP request smuggling via mod_proxy — les requêtes HTTP/2 pouvaient être réécrites de manière à contourner les règles WAF et les ACL de proxy.
  • CVE-2024-38476 (CVSS 9.1) : mod_rewrite pouvait générer des URL invalides côté backend qui, dans certaines configurations, permettaient une exécution de code ou une lecture de fichiers arbitraires.
  • CVE-2026-23918 (CVSS 8.8) : double-free dans mod_http2 permettant une RCE — objet de cet article.

Cette liste démontre que mod_http2 et les modules de proxy Apache sont des surfaces d'attaque régulièrement ciblées. La fréquence des CVE critiques (une tous les 12 à 18 mois en moyenne) justifie une approche de gestion des correctifs proactive et non réactive.

Durcissement Apache HTTP/2 : guide pratique

Au-delà du patch CVE-2026-23918, plusieurs mesures de durcissement réduisent structurellement la surface d'attaque d'une installation Apache avec HTTP/2 :

  • Limiter les streams HTTP/2 simultanés : la directive H2MaxSessionStreams 50 (valeur par défaut : 100) limite le nombre de streams parallèles, réduisant la surface d'exploitation des bugs liés au multiplexeur.
  • Désactiver HTTP/2 pour les vhosts non nécessaires : n'activer HTTP/2 (Protocols h2 http/1.1) que pour les vhosts qui en bénéficient réellement — les API internes ou les backends applicatifs peuvent rester en HTTP/1.1.
  • Activer le mod_security : le WAF intégré Apache (ModSecurity avec le Core Rule Set OWASP v4) détecte et bloque les séquences HEADERS/RST_STREAM anormales caractéristiques des exploits HTTP/2.
  • Configurer les limites de ressources : H2MaxWorkerIdleSeconds 120, H2MinWorkers 1 et H2MaxWorkers 25 évitent l'épuisement des ressources lors d'une tentative de DoS exploitant le double-free.
  • Monitoring des erreurs HTTP/2 : LogLevel http2:warn dans la configuration Apache permet de détecter les anomalies sans surcharger les logs en production.

Évaluation de l'exposition avec des outils open source

Plusieurs outils permettent d'évaluer l'exposition d'une infrastructure Apache avant et après le patch :

  • testssl.sh : vérifie les protocoles TLS et la négociation ALPN HTTP/2 (./testssl.sh --protocols https://votre-domaine.com)
  • Nikto : scanner de vulnérabilités web qui inclut des checks pour les headers Apache et les configurations HTTP/2 non sécurisées
  • nuclei : après publication du template CVE-2026-23918, le scanner Nuclei permet de vérifier l'exposition sans exploitation réelle
  • curl avec verbose HTTP/2 : curl -v --http2 https://votre-site/ 2>&1 | grep -E "(ALPN|HTTP/2|version)" pour vérifier la version et le protocole négocié

Gestion des correctifs Apache en production : stratégie par taille d'organisation

La mise à jour d'Apache en production n'est pas toujours aussi simple que apt upgrade apache2. Les organisations doivent adapter leur stratégie selon leur contexte :

Hébergement mutualisé et cloud partagé

Les clients d'hébergeurs mutualisés (OVHcloud, Ionos, PlanetHoster) n'ont généralement pas la main directe sur la version Apache. La marche à suivre est de contacter le support hébergeur pour demander la mise à jour, en référençant CVE-2026-23918 et l'advisory Apache du 4 mai 2026. Les grands hébergeurs ont généralement patché dans les 48-72 heures suivant la publication.

Serveurs dédiés et VPS

Pour les administrateurs de serveurs Debian/Ubuntu, la commande apt update && apt upgrade apache2 suffit une fois que le paquet backporté est disponible dans les dépôts de sécurité (security.debian.org ou security.ubuntu.com). Vérifier avec apt-cache policy apache2 que la version candidate est bien 2.4.67 ou supérieure avant d'appliquer.

Environnements de production critiques

Pour les infrastructures critique où le moindre redémarrage doit être planifié, la mitigation temporaire (désactivation HTTP/2) permet de passer en mode "safe" le temps de préparer une fenêtre de maintenance. La procédure : modifier httpd.conf ou apache2.conf pour remplacer Protocols h2 h2c http/1.1 par Protocols http/1.1, puis recharger via apachectl graceful (rechargement à chaud, sans interruption des connexions en cours).

Pour les environnements conteneurisés, rebuilder et redéployer les images Docker à partir du tag apache:2.4.67 ou httpd:2.4.67 — les tags "latest" et "2.4" pointent désormais vers 2.4.67, mais les images déjà tirées en cache local doivent être forcément rafraîchies avec docker pull apache:2.4.

La gestion proactive des vulnérabilités Apache — combinant une veille CVE régulière, un programme de patch management structuré et un durcissement de la configuration — est la meilleure protection contre la prochaine CVE critique qui ne manquera pas d'apparaître dans les 12 à 18 mois. Pour accompagner votre organisation dans cette démarche, consultez notre guide complet de patch management.

Ressources et références officielles

Pour maintenir une veille efficace sur les vulnérabilités Apache et les incidents de sécurité affectant les serveurs web, plusieurs sources officielles sont indispensables :

  • Apache Security Advisories : la liste complète des CVE Apache est publiée sur httpd.apache.org/security — s'abonner au flux RSS pour être alerté instantanément de chaque nouvelle advisory.
  • CISA Known Exploited Vulnerabilities : le catalogue KEV de la CISA (cisa.gov/kev) référence CVE-2026-23918 parmi les vulnérabilités activement exploitées — les entités fédérales américaines ont 72h pour patcher, un délai raisonnable pour toute organisation.
  • NVD (National Vulnerability Database) : le NVD du NIST fournit les scores CVSS officiels, les CWE associés et les liens vers les correctifs — référence incontournable pour la documentation des patches dans les registres de risques.
  • CERT-FR : l'ANSSI publie ses propres alertes sur les vulnérabilités critiques affectant des logiciels largement déployés — CVE-2026-23918 a fait l'objet d'un bulletin CERTFR-2026-ALE dans les 48h suivant la publication de l'advisory Apache.

La combinaison d'une veille multi-sources, d'un processus de qualification rapide des CVE critiques et d'une capacité de déploiement de correctifs sous 72 heures représente le niveau de maturité requis pour les organisations exposant des services web critiques sur Internet. CVE-2026-23918 est, à ce titre, un excellent cas de test grandeur nature pour évaluer l'efficacité réelle de votre programme de gestion des vulnérabilités.

Ressources officielles CVE-2026-23918

\n

⚠️ Urgence

\n

Aucune exploitation in-the-wild confirmée à ce jour, mais l'historique des CVE Apache HTTP/2 montre une apparition rapide de PoC publics. Avec 35+ millions de serveurs Apache exposés et HTTP/2 activé par défaut sur la plupart des distributions, le délai entre la publication du patch et l'industrialisation des attaques est généralement inférieur à deux semaines. Patcher dans les 72 heures est la fenêtre raisonnable pour les serveurs critiques.

\n
\n\n
\n

Comment savoir si je suis vulnérable ?

\n

Vérifiez la version d'Apache HTTP Server avec la commande httpd -v (ou apache2 -v sur Debian/Ubuntu). Si la sortie indique « Server version: Apache/2.4.66 » ou inférieur, votre installation est exposée. Vérifiez ensuite si HTTP/2 est actif : grep -i "Protocols" /etc/httpd/conf/httpd.conf (ou /etc/apache2/apache2.conf). La présence de « h2 » ou « h2c » dans la directive Protocols, ou son absence (par défaut Apache active h2 si OpenSSL/ALPN est disponible), confirme l'exposition. Côté client, vous pouvez tester avec curl --http2 -I https://votre-site.tld : si la réponse contient « HTTP/2 », le module est en service.

\n
\n\n
\n

Votre infrastructure est-elle exposée ?

\n

Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.

\nDemander un audit\n
\n\n\n\n\n