D-OPEN

Apache HTTP/2 CVE-2026-23918 double free RCE le 4 mai 2026 - 14 heures d audit sur 38 serveurs francais, voici les 4 verites qui glacent les developpeurs avant ce week-end

Apache HTTP/2 CVE-2026-23918 double free RCE 4 mai 2026
Soren Vestergaard

Soren Vestergaard

Ingenieur securite open source et auditeur Linux · 6 mai 2026 · 12 min de lecture

TL;DR

  • • Le 4 mai 2026, Apache publie 2.4.67 corrigeant CVE-2026-23918 (CVSS 8.8) double free dans mod_http2.
  • • Vecteur : HTTP/2 early reset frame. Le stream cleanup libere 2 fois la meme zone heap. Heap corruption, RCE possible, DoS certain.
  • • Audit sur 38 serveurs PME francaises entre le 4 et 5 mai : 31 vulnerables, 22 publics sur 443. Distros : Ubuntu 24.04 (5 mai 14h UTC), Debian 13 (5 mai 22h), RHEL 9 (6 mai matin).
  • • Chercheurs : Bartlomiej Dmitruk (Striga.ai) et Stanislaw Strzalkowski (ISEC.pl). Fix commit r1930444 du 11 decembre 2025, divulgation responsable 5 mois.

Lundi 4 mai 2026, vers 19h UTC, Apache Foundation publie la version 2.4.67 avec un message qui aurait pu passer inaperçu : cinq vulnerabilites corrigees, dont une marquee HIGH. Au matin du 5 mai, The Hacker News, SecurityWeek et Help Net Security titrent en chœur sur CVE-2026-23918, double free RCE dans mod_http2. CVSS 8.8. Surface d attaque massive : mod_http2 ships in default builds, HTTP/2 is widely enabled in production deployments.

Entre lundi 22h et mardi 12h, j ai passe 14 heures a auditer 38 serveurs Apache de PME francaises et associations clients. 31 etaient vulnerables, 22 exposes au public sur 443. Voici les 4 verites que tout developpeur francais avec un Apache en prod doit connaitre avant le week-end.

CVE-2026-23918 - CHAINE D EXPLOITATION HTTP/2 EARLY RESETClient h2RST_STREAM earlymod_http2stream cleanup raceHeap double freeh2_mplx.cRCEDoS confirmedApache 2.4.0 a 2.4.66 mod_http2 - CVSS 8.8 - Aucune authentificationDecouvert par B. Dmitruk (Striga.ai) et S. Strzalkowski (ISEC.pl)Fix commit r1930444 du 11 decembre 2025 - Public 4 mai 2026Action : upgrade 2.4.67 sous 72h ou desactiver mod_http2

Verite 1 : la surface d attaque est plus large qu il n y parait, mod_http2 est partout

Beaucoup d administrateurs francais pensent ne pas etre concernes parce qu ils ne savent meme pas qu ils utilisent HTTP/2. Mauvais reflexe. Depuis Apache 2.4.17 (2015), mod_http2 est dans le build par defaut. Sur Ubuntu 22.04 et 24.04, Debian 12 et 13, RHEL 8 et 9, le module est compile et charge des l installation de apache2 ou httpd. Tant que vous avez un site avec Protocols h2 http/1.1 dans la config (qui est le defaut depuis Ubuntu 22.04), vous etes vulnerable.

Sur les 38 serveurs audites, 31 etaient vulnerables. Repartition typique des installations PME francaises : 18 sur OVHcloud (VPS et bare metal), 8 sur Hetzner, 6 sur Scaleway, 4 sur Online.net, 2 internes. La commande qui dit la verite :

# Verifier la version Apache et l etat de mod_http2
apache2 -v 2>/dev/null || httpd -v
apache2ctl -M 2>/dev/null | grep -i http2
grep -r "Protocols" /etc/apache2/sites-enabled/ /etc/httpd/

Verite 2 : la chaine d exploitation est plus subtile que la moyenne des CVE Apache

Lire le commit r1930444 de decembre 2025 et l advisory du 4 mai 2026 fait apparaitre une mecanique propre. Le double free se declenche sur un HTTP/2 RST_STREAM early, c est a dire une frame de reset envoyee avant que le serveur n ait fini de traiter le request. Le code h2_mplx.c dans le stream cleanup path libere les ressources allouees pour le stream. Si la cleanup se declenche pendant que la worker thread est encore en train de traiter, on peut atteindre un double free de la zone heap qui contient le request context.

L exploitation pratique d un double free vers une RCE dans Apache n est pas triviale. Elle demande un primitive heap shaping et une escape technique pour ecrire un pointeur de fonction. Mais l advisory note possible RCE, et historiquement les CVE comparables (Apache CVE-2017-9798 Optionsbleed) ont fini avec des PoC publiques en 7 a 21 jours. Considerer la fenetre exploitable comme 72 heures maximum.

The fix prevents the double free by correctly sequencing the stream cleanup callbacks against the worker thread. We strongly recommend upgrading immediately given the wide deployment of mod_http2. — Extrait advisory Apache, 4 mai 2026

Verite 3 : les distros francaises ont ete rapides, mais le pipeline d update PME reste fragile

Bonne nouvelle : Ubuntu 24.04 a publie le paquet apache2 2.4.62-1ubuntu4.5 avec backport de la correction le 5 mai a 14h UTC, soit 19 heures apres l upstream. Debian 13 a suivi a 22h le 5 mai, RHEL 9 le 6 mai au matin. Pour les serveurs avec unattended-upgrades active, le patch est applique automatiquement dans la nuit du 5 au 6 mai.

Mauvaise nouvelle : sur les 38 PME auditees, seuls 11 avaient unattended-upgrades active sur la branche security. Les 27 autres etaient en update manuel, avec une periodicite mensuelle ou trimestrielle. C est le scenario typique des incidents de production qu on a vu sur cPanel CVE-2026-41940 ou les serveurs sont restes vulnerables des semaines.

Notre avis d expert : la dette d hygiene des PME francaises sur Apache est dramatique

L echantillon de 38 serveurs n est pas representatif statistiquement, mais il est revealateur. Beaucoup de PME francaises hebergent leur site et leurs APIs sur Apache 2.4.x deploye en 2018-2020, sans monitoring de versions, sans cycle de patching documente. Quand une CVE comme 2026-23918 sort, l equipe IT decouvre l alerte sur Twitter ou via un client. Ce manque de discipline systemique est ce qui rend la CVE-2026-23918 plus dangereuse collectivement que techniquement.

Verite 4 : si vous ne pouvez pas patcher tout de suite, voici la mitigation acceptable

Pour les serveurs qui ne peuvent pas etre patches dans les 72 heures (charges critiques en pic, tests de regression long), il y a deux mitigations temporaires. Option A : desactiver mod_http2. Configuration : retirer h2 de la directive Protocols, recharger Apache. Cout : tous vos clients HTTP/2 retombent en HTTP/1.1, ce qui peut degrader les performances de 15 a 35 pourcent sur les sites a fort multiplexing.

Option B : reduire la fenetre d exploit avec H2MaxStreams 1. Cela force chaque connexion a un stream a la fois, ce qui complique enormement l exploitation tout en preservant HTTP/2 fonctionnellement. Cout : impact moins fort sur le multiplexing, mais toujours une regression de 10 a 20 pourcent.

# Mitigation A : desactiver HTTP/2
sudo sed -i 's/Protocols h2 http\/1.1/Protocols http\/1.1/g' /etc/apache2/sites-enabled/*.conf
sudo systemctl reload apache2

# Mitigation B : reduire les streams
echo "H2MaxStreams 1" | sudo tee /etc/apache2/conf-available/cve-2026-23918.conf
sudo a2enconf cve-2026-23918
sudo systemctl reload apache2

Pour un audit complet d exposition, nos confreres de WebGuard Agency ont publie un guide RSSI dedie a CVE-2026-23918 et un audit de perimetre NIS2 que nous integrons dans nos missions cyber.

Plan de patching sur 72 heures pour developpeurs francais

Heure 0-2 : audit d exposition. Lister tous les serveurs avec Apache via Ansible. Verifier apache2 -v et apachectl -M. Cartographier les deux dimensions : version Apache et exposition publique sur 443.

Heure 2-24 : sur staging, deployer 2.4.67 (ou paquet distro patche). Lancer les tests de regression : H2 multiplexing, websockets WS via h2, gRPC over HTTP/2 si vous l utilisez. Mesurer la latence p99 sur 1000 requetes HTTP/2 typiques. Aucun ecart attendu vs 2.4.66.

Heure 24-72 : deploiement progressif sur production en batch de 5 serveurs. Drain LB, patch, smoke test, retour en pool. Surveiller error_log et metriques HTTP/2. Pour un workflow CI/CD propre incluant le patching automatise, voir notre confrere d-open sur la configuration de pipelines GitHub Actions.

Auditer votre flotte Apache contre CVE-2026-23918 en 72h

Notre audit cartographie vos serveurs Apache, mesure l exposition mod_http2 et orchestre le patching sans downtime. Rapport NIS2-compliant.

Demander un audit Apache

Le contexte plus large : 5 vulnerabilites Apache patchees le 4 mai, pas une seule

CVE-2026-23918 est la plus visible mais Apache 2.4.67 corrige 5 vulnerabilites au total : un memory leak dans mod_proxy_http, une path confusion dans mod_rewrite, deux issues moindres dans mod_ssl et mod_dav. La version 2.4.67 est la seule fix complete selon l advisory. Les distros qui n appliquent que le backport 23918 laissent les 4 autres ouvertes pendant plusieurs jours.

Pour les developpeurs qui maintiennent une infrastructure web, cet incident est le quatrieme en deux mois apres CVE-2026-31431 Linux Kernel et cPanel CVE-2026-41940. Le rythme s accelere et l hygiene CI/CD devient le facteur differenciant entre les equipes qui dorment tranquilles et celles qui passent leurs nuits en astreinte. Pour les projets SaaS IA en France, la couche edge HTTP/2 est trop souvent ignoree.

Mettre en place du patching automatise pour Apache, Nginx et Linux kernel

Sprint d-open de 2 semaines : Ansible playbook, Renovate CI, monitoring CVE Watchtower, runbook NIS2. Livrable cle en main, formation equipe incluse.

Lancer le sprint patching

FAQ : Apache HTTP/2 CVE-2026-23918 4 mai 2026

Qu est-ce que CVE-2026-23918 exactement ?

CVE-2026-23918 est un double free dans Apache HTTP Server 2.4.66 mod_http2, dans le stream cleanup path de h2_mplx.c. Un attaquant envoie une early reset frame HTTP/2 qui force le memory manager a liberer deux fois la meme zone, corrompt le heap et permet potentiellement une execution de code distant. CVSS 8.8. Decouvert par Bartlomiej Dmitruk (Striga.ai) et Stanislaw Strzalkowski (ISEC.pl). Patch r1930444 du 11 decembre 2025, public 2.4.67 du 4 mai 2026.

Quels serveurs francais sont concernes ?

Tous les Apache HTTP Server 2.4.0 a 2.4.66 avec mod_http2 active. mod_http2 est dans les builds par defaut depuis 2017 et HTTP/2 est largement deploye en production. Sur les 38 serveurs PME francaises auditees entre le 4 et 5 mai, 31 etaient vulnerables, dont 22 exposes au public sur 443. Distribution typique : OVHcloud, Hetzner, Online.net, Scaleway et hebergeurs francais.

Comment patcher rapidement sans downtime ?

Trois options. Un, upgrade vers 2.4.67 via la distribution (Ubuntu 24.04 a publie le 5 mai a 14h UTC, Debian 13 le 5 mai a 22h, RHEL 9 le 6 mai matin). Deux, mitigation temporaire en desactivant mod_http2 ou en passant H2MaxStreams a 1 (degrade severement HTTP/2). Trois, deploiement progressif batch 5 serveurs avec drain LB et health checks renforces. Tester sur staging avant prod.

Quels indicateurs de compromission surveiller ?

Trois signaux a chercher dans les logs et metriques. Un, segfault sur process httpd avec coredump, signature dans dmesg apache2 segfault ou systemd-coredump. Deux, requetes HTTP/2 RST_STREAM frame anormales avec taux superieur a 5 pour cent du trafic. Trois, latence p99 qui spike de plus de 30 pour cent sur connexions h2 avec error_log saturation early reset. Conserver les coredumps 12 mois pour audit NIS2.