Kritische RCE-Schwachstelle im Apache HTTP Server behoben
Die **Apache Software Foundation (ASF)** hat Sicherheitsupdates veröffentlicht, um eine kritische Schwachstelle zur Ausführung von Remote-Code (RCE) im **Apache HTTP Server** zu beheben. Die als **CVE-2026-23918** verfolgte Lücke beruht auf einem Double-Free-Problem bei der Verarbeitung des HTTP/2-Protokolls.

### Double-Free-Schwachstelle in HTTP/2
Die als **CVE-2026-23918** (CVSS-Score: 8,8) identifizierte Schwachstelle wird als "Double-Free und mögliche RCE" in der HTTP/2-Protokollverarbeitung beschrieben. Sie betrifft den **Apache HTTP Server** 2.4.66 und wurde in Version 2.4.67 behoben.
**Bartlomiej Dmitruk**, Mitbegründer von Striga.ai, und **Stanislaw Strzalkowski**, Forscher bei ISEC.pl, werden für die Entdeckung und Meldung der Schwachstelle geehrt.
### Technische Details und Ausnutzung
Laut Dmitruk ist die Schwere von **CVE-2026-23918** kritisch, da sie sowohl für Denial-of-Service (DoS) als auch für RCE ausgenutzt werden kann. Er erläuterte die technischen Details:
> *CVE-2026-23918 ist ein Double-Free in Apache httpd 2.4.66 `mod_http2`, speziell im Stream-Cleanup-Pfad von h2_mplx.c. Der Fehler wird ausgelöst, wenn ein Client einen HTTP/2 HEADERS-Frame sendet, gefolgt von einem RST_STREAM mit einem Fehlercode ungleich Null für denselben Stream, bevor der Multiplexer den Stream registriert hat.*
> *Zwei nghttp2-Callbacks werden dann nacheinander ausgelöst: on_frame_recv_cb für das RST und on_stream_close_cb für den Close. Beide rufen schließlich h2_mplx_c1_client_rst -> m_stream_cleanup auf, das denselben h2_stream-Zeiger zweimal in das Bereinigungsarray `spurge` einfügt. Wenn c1_purge_streams später `spurge` durchläuft und h2_stream_destroy -> apr_pool_destroy für jeden Eintrag aufruft, greift der zweite Aufruf auf Speicher zu, der bereits freigegeben wurde.*
Dmitruk erklärte, dass der DoS-Angriff bei jeder Standardbereitstellung mit `mod_http2` und einem Multi-Threaded-MPM (**Multi-Processing Module**) trivial sei. RCE erfordere jedoch ein **Apache Portable Runtime (APR)** mit dem mmap-Allocator, was auf Debian-basierten Systemen und im offiziellen httpd Docker-Image standardmäßig der Fall ist.
### RCE-Exploit-Pfad
Dmitruk erläuterte weiter den RCE-Exploit:
> *Das erste Ergebnis ist Denial-of-Service, was trivial ist: eine TCP-Verbindung, zwei Frames, keine Authentifizierung, keine speziellen Header, keine spezifische URL, und der Worker stürzt ab. Apache startet ihn neu, aber jede Anfrage an den abgestürzten Worker wird verworfen, und das Muster kann aufrechterhalten werden, solange der Angreifer sendet.*
> *Das zweite Ergebnis ist Remote Code Execution, und wir haben einen funktionierenden Proof of Concept auf x86_64 erstellt. Die Kette platziert eine gefälschte h2_stream-Struktur an der freigegebenen virtuellen Adresse über mmap-Wiederverwendung, leitet die Pool-Cleanup-Funktion auf `system()` um und verwendet den Apache-Scoreboard-Speicher als stabilen Container für die gefälschten Strukturen und die Befehlszeichenkette.*
> *Das Scoreboard befindet sich für die Lebensdauer des Servers an einer festen Adresse, auch mit ASLR, was den RCE-Pfad praktikabel macht. Die üblichen Vorbehalte gelten: Praktische Ausnutzung erfordert einen Info-Leak für `system()` und die Scoreboard-Offsets, und der Heap-Spray ist probabilistisch, aber unter Laborbedingungen landet die Ausführung in Minuten.*
### Minderung und Empfehlungen
Dmitruk stellte klar, dass das MPM prefork von der Lücke nicht betroffen ist. Er warnte jedoch, dass die Angriffsfläche erheblich sei, da `mod_http2` in Standard-Builds enthalten sei und HTTP/2 in Produktionsumgebungen weit verbreitet sei. Benutzern wird dringend empfohlen, die neuesten Patches anzuwenden, um das Risiko dieser Schwachstelle zu mindern.