
Technische Analyse von CVE-2026-24072, einer lokalen Privilegieneskalation in Apache HTTP Server mod_rewrite, einschließlich Grundursache, Patches und Dockerisiertem Testlabor zur Verifizierung.
CVE-2026-24072 ist eine lokale Schwachstelle mittlerer Schwere zur Privilegienausweitung in Apache HTTP Server 2.4.66 und früheren Versionen. Sie ermöglicht es lokalen
.htaccess-Autoren, beliebige Dateien im Dateisystem mit den Rechten deshttpd-Benutzers zu lesen, indem sie dieap_expr-Ausdrucksauswertung innerhalb vonmod_rewrite,mod_setenvifundmod_proxy_fcgiausnutzen.
| Feld | Wert |
|---|
| CVE-ID | CVE-2026-24072 |
| Schweregrad | Mittel (Lokale Privilegienausweitung / Offenlegung von Informationen) |
| Betroffen | Apache HTTP Server <= 2.4.66 |
| Behoben | Apache HTTP Server 2.4.67 |
| Angriffsvektor | Lokal (erfordert .htaccess-Schreibzugriff) |
CVE-2026-24072-analysis.mdmod_rewrite.diff, mod_setenvif.diff, mod_proxy_fcgi.diffexamples/Die Ausdrucksauswertungs-Engine von Apache (ap_expr) stellt Funktionen zur Dateisystem-Inspektion bereit:
file(path) — liest Dateiinhaltefilesize(path) — gibt die Dateigröße zurück-d path, -e path, -f path, -s path, -L path, -h path, -x path — DateisystemtestsIn 2.4.66 und früheren Versionen analysierten und werteten Module wie mod_rewrite (über RewriteCond expr=...), mod_setenvif (über SetEnvIfExpr) und mod_proxy_fcgi (über Bedingungsausdrücke von ProxyFCGIBackendType) ap_expr-Ausdrücke ohne das Flag AP_EXPR_FLAG_RESTRICTED aus, wenn sie im .htaccess-Kontext arbeiteten. Das bedeutete, dass jeder lokale Benutzer, der eine .htaccess-Datei schreiben konnte, diese Ausdrucksfunktionen nutzen konnte, um das Dateisystem mit den vollen Rechten des httpd-Prozesses zu untersuchen oder zu lesen.
Die Behebung ist konzeptionell einfach: Beim Parsen von ap_expr-Ausdrücken im .htaccess-Kontext muss das Flag AP_EXPR_FLAG_RESTRICTED übergeben werden.
Alle drei gepatchten Module verwenden dieselbe Redewendung, um den .htaccess-Parsing-Kontext zu erkennen:
int in_htaccess = cmd->pool == cmd->temp_pool;
Wenn Apache .htaccess-Dateien parst, ist der Konfigurationspool pro Verzeichnis (cmd->pool) derselbe wie der temporäre Pool (cmd->temp_pool). Dies ist eine bekannte interne Apache-Konvention zur Erkennung des .htaccess-Kontexts (pro Verzeichnis) im Gegensatz zum Hauptserver-/Virtuellen-Host-Kontext.
| Datei | Beschreibung |
|---|---|
CVE-2026-24072-analysis.md | Vollständige technische Analyse und Auswirkungsbewertung |
mod_rewrite.diff | Patch für modules/mappers/mod_rewrite.c |
mod_setenvif.diff | Patch für modules/metadata/mod_setenvif.c |
mod_proxy_fcgi.diff | Patch für modules/proxy/mod_proxy_fcgi.c |
httpd-2.4.66/ | Quellbaum der verwundbaren Apache-Version |
httpd-2.4.67/ | Quellbaum der behobenen Apache-Version |
examples/ | Proof-of-Concept-.htaccess-Dateien |
Dieses Repository enthält ein Dockerisiertes Testlabor, mit dem Sie zwischen dem verwundbaren und dem gepatchten mod_rewrite-Modul wechseln können, um zu überprüfen, ob die Behebung funktioniert:
# Labor erstellen und starten
make build
make up
# Vollständige automatisierte Testmatrix ausführen (beide Varianten)
make test
Das Labor verwendet eine Sentinel-Datei (/opt/sentinel/secret.txt), die nur für den Benutzer daemon lesbar ist (den Benutzer, unter dem httpd läuft). Beim verwundbaren Build können .htaccess-Ausdrücke den Inhalt der Sentinel-Datei lesen und abgleichen. Beim behobenen Build schlägt das Parsen mit not available in restricted context fehl.
Die vollständige Anleitung finden Sie unter docs/TESTING.md.
| Datei | Beschreibung |
|---|---|
CVE-2026-24072-analysis.md | Vollständige technische Analyse und Auswirkungsbewertung |
mod_rewrite.diff | Patch für modules/mappers/mod_rewrite.c |
mod_setenvif.diff | Patch für modules/metadata/mod_setenvif.c |
mod_proxy_fcgi.diff | Patch für modules/proxy/mod_proxy_fcgi.c |
httpd-2.4.66/ | Quellbaum der verwundbaren Apache-Version |
httpd-2.4.67/ | Quellbaum der behobenen Apache-Version |
examples/ | Proof-of-Concept-.htaccess-Dateien |
docker/ | Docker-Build-Dateien für das Testlabor |
scripts/ | Wechsel- und Testskripte |
tests/ | Test-Fixtures und -Matrix |
docs/TESTING.md | Vollständiger Testleitfaden |
docs/session/ | Sitzungsexport aus dem Designprozess |
Dieses Repository dient ausschließlich Bildungs- und Verteidigungszwecken. Die Proof-of-Concept-Beispiele sollen Sicherheitsexperten helfen, diese Schwachstelle zu verstehen und sich dagegen zu verteidigen. Verwenden Sie diese Techniken nicht auf Systemen, die Sie nicht besitzen oder für die Sie keine ausdrückliche Testberechtigung haben.