
Analisi tecnica di CVE-2026-24072, un'escalation dei privilegi locale in Apache HTTP Server mod_rewrite, inclusi causa principale, patch e laboratorio di test containerizzato con Docker per la verifica.
CVE-2026-24072 è una vulnerabilità di elevazione locale dei privilegi di gravità moderata in Apache HTTP Server 2.4.66 e versioni precedenti. Consente agli autori locali di file
.htaccessdi leggere file arbitrari sul filesystem con i privilegi dell'utentehttpdsfruttando la valutazione delle espressioniap_exprall'interno dimod_rewrite,mod_setenvifemod_proxy_fcgi.
| Campo | Valore |
|---|
| ID CVE | CVE-2026-24072 |
| Gravità | Moderata (Elevazione Locale dei Privilegi / Divulgazione di Informazioni) |
| Versioni Affette | Apache HTTP Server <= 2.4.66 |
| Versione Corretta | Apache HTTP Server 2.4.67 |
| Vettore di Attacco | Locale (richiede accesso in scrittura a .htaccess) |
CVE-2026-24072-analysis.mdmod_rewrite.diff, mod_setenvif.diff, mod_proxy_fcgi.diffexamples/Il motore di valutazione delle espressioni di Apache (ap_expr) fornisce funzioni di introspezione del filesystem:
file(path) — legge il contenuto dei filefilesize(path) — restituisce la dimensione del file-d path, -e path, -f path, -s path, -L path, -h path, -x path — test sul filesystemNelle versioni 2.4.66 e precedenti, moduli come mod_rewrite (tramite RewriteCond expr=...), mod_setenvif (tramite SetEnvIfExpr) e mod_proxy_fcgi (tramite le espressioni condizionali di ProxyFCGIBackendType) analizzavano e valutavano le espressioni ap_expr senza passare il flag AP_EXPR_FLAG_RESTRICTED quando operavano nel contesto .htaccess. Ciò significava che qualsiasi utente locale in grado di scrivere un file .htaccess poteva utilizzare queste funzioni di espressione per sondare o leggere il filesystem con tutti i privilegi del processo httpd.
La correzione è concettualmente semplice: quando si analizzano le espressioni ap_expr nel contesto .htaccess, passare il flag AP_EXPR_FLAG_RESTRICTED.
Tutti e tre i moduli corretti utilizzano lo stesso idioma per rilevare il contesto di analisi .htaccess:
int in_htaccess = cmd->pool == cmd->temp_pool;
Quando Apache analizza i file .htaccess, il pool di configurazione per-directory (cmd->pool) è lo stesso del pool temporaneo (cmd->temp_pool). Questa è una nota convenzione interna di Apache per rilevare il contesto .htaccess (per-directory) rispetto al contesto del server principale/virtual host.
| File | Descrizione |
|---|---|
CVE-2026-24072-analysis.md | Analisi tecnica completa e valutazione dell'impatto |
mod_rewrite.diff | Patch per modules/mappers/mod_rewrite.c |
mod_setenvif.diff | Patch per modules/metadata/mod_setenvif.c |
mod_proxy_fcgi.diff | Patch per modules/proxy/mod_proxy_fcgi.c |
httpd-2.4.66/ | Albero dei sorgenti della versione vulnerabile di Apache |
httpd-2.4.67/ | Albero dei sorgenti della versione corretta di Apache |
examples/ | File .htaccess proof-of-concept |
Questo repository include un laboratorio di test Dockerizzato che consente di alternare tra i moduli mod_rewrite vulnerabile e corretto per verificare che la correzione funzioni:
# Compila e avvia il laboratorio
make build
make up
# Esegui la matrice di test automatizzata completa (entrambe le varianti)
make test
Il laboratorio utilizza un file sentinella (/opt/sentinel/secret.txt) leggibile solo dall'utente daemon (l'utente con cui gira httpd). Nella build vulnerabile, le espressioni .htaccess possono leggere e confrontare il contenuto della sentinella. Nella build corretta, l'analisi fallisce con not available in restricted context.
Consulta docs/TESTING.md per la guida completa.
| File | Descrizione |
|---|---|
CVE-2026-24072-analysis.md | Analisi tecnica completa e valutazione dell'impatto |
mod_rewrite.diff | Patch per modules/mappers/mod_rewrite.c |
mod_setenvif.diff | Patch per modules/metadata/mod_setenvif.c |
mod_proxy_fcgi.diff | Patch per modules/proxy/mod_proxy_fcgi.c |
httpd-2.4.66/ | Albero dei sorgenti della versione vulnerabile di Apache |
httpd-2.4.67/ | Albero dei sorgenti della versione corretta di Apache |
examples/ | File .htaccess proof-of-concept |
docker/ | File di build Docker per il laboratorio di test |
scripts/ | Script di scambio e test |
tests/ | Fixture di test e matrice |
docs/TESTING.md | Guida completa ai test |
docs/session/ | Esportazione della sessione dal processo di progettazione |
Questo repository è destinato esclusivamente a scopi educativi e difensivi. Gli esempi proof-of-concept hanno lo scopo di aiutare i professionisti della sicurezza a comprendere e difendersi da questa vulnerabilità. Non utilizzare queste tecniche su sistemi che non possiedi o per i quali non hai esplicita autorizzazione al test.