Die Sicherheitsforscher Bartlomiej Dmitruk von Striga.ai und Stanislaw Strzalkowski von ISEC.pl haben die Lücke entdeckt und der Apache Software Foundation gemeldet. CVE-2026-23918 ist ein sogenannter Double-Free-Fehler im mod_http2-Modul von Apache httpd 2.4.66, konkret im Stream-Cleanup-Pfad der Datei h2_mplx.c.
Die technische Ursache ist elegant und tückisch zugleich: Wenn ein Client einen HTTP/2-HEADERS-Frame unmittelbar vor einem RST_STREAM-Frame mit Fehlercode auf dem gleichen Stream sendet – bevor der Multiplexer den Stream registriert hat – führt dies zu einer doppelten Speicherfreigabe. Zwei nghttp2-Callbacks werden hintereinander ausgelöst und rufen beide die gleiche Cleanup-Funktion auf, was dazu führt, dass der gleiche h2_stream-Pointer zweimal in das Cleanup-Array geschrieben wird. Wenn dieses Array später iteriert wird und h2_stream_destroy aufgerufen wird, greift der zweite Aufruf auf bereits freigegebenen Speicher zu.
Dmitruck zufolge lässt sich der DoS-Angriff trivial ausführen: Eine TCP-Verbindung, zwei Frames, keine Authentifizierung erforderlich – und der Worker-Prozess crasht. Während Apache diesen automatisch neu startet, werden alle ausstehenden Anfragen verworfen. Ein Angreifer kann diesen Zustand aufrechterhalten, solange er die Frames sendet.
Noch besorgniserregender ist der RCE-Pfad (Remote Code Execution), für den die Forscher bereits einen funktionierenden Proof-of-Concept entwickelt haben. Dieser setzt voraus, dass das Apache Portable Runtime (APR) mit dem mmap-Allocator konfiguriert ist – was auf Debian-basierten Systemen und im offiziellen httpd-Docker-Image standard ist. Dabei werden Stack-Spray-Techniken und Apache-Scoreboard-Speicher missbraucht, um beliebigen Code auszuführen.
Besonders problematisch: Das MPM-Prefork-Modul ist nicht betroffen, aber mod_http2 wird in Standard-Builds ausgeliefert und HTTP/2 ist in Production-Umgebungen weit verbreitet. Das BSI sollte deutsche Administratoren dringend zur Aktualisierung auffordern. Version 2.4.67 behebt die Sicherheitslücke vollständig.
