
Análisis técnico de CVE-2026-24072, una escalada de privilegios local en mod_rewrite de Apache HTTP Server, incluyendo la causa raíz, los parches y un laboratorio de pruebas con Docker para su verificación.
CVE-2026-24072 es una vulnerabilidad de escalada de privilegios local de severidad moderada en Apache HTTP Server 2.4.66 y versiones anteriores. Permite a autores locales de
.htaccessleer archivos arbitrarios del sistema de archivos con los privilegios del usuariohttpdaprovechando la evaluación de expresionesap_exprdentro demod_rewrite,mod_setenvifymod_proxy_fcgi.
| Campo | Valor |
|---|
| ID CVE | CVE-2026-24072 |
| Severidad | Moderada (Escalada de Privilegios Local / Divulgación de Información) |
| Afectados | Apache HTTP Server <= 2.4.66 |
| Corregido | Apache HTTP Server 2.4.67 |
| Vector de Ataque | Local (requiere acceso de escritura a .htaccess) |
CVE-2026-24072-analysis.mdmod_rewrite.diff, mod_setenvif.diff, mod_proxy_fcgi.diffexamples/El motor de evaluación de expresiones de Apache (ap_expr) proporciona funciones de introspección del sistema de archivos:
file(path) — lee el contenido de archivosfilesize(path) — devuelve el tamaño del archivo-d path, -e path, -f path, -s path, -L path, -h path, -x path — pruebas del sistema de archivosEn 2.4.66 y versiones anteriores, módulos como mod_rewrite (a través de RewriteCond expr=...), mod_setenvif (a través de SetEnvIfExpr) y mod_proxy_fcgi (a través de expresiones de condición ProxyFCGIBackendType) analizaban y evaluaban expresiones ap_expr sin pasar la bandera AP_EXPR_FLAG_RESTRICTED al operar en el contexto de .htaccess. Esto significaba que cualquier usuario local que pudiera escribir un archivo .htaccess podía usar estas funciones de expresión para sondear o leer el sistema de archivos con todos los privilegios del proceso httpd.
La corrección es conceptualmente simple: al analizar expresiones ap_expr en el contexto de .htaccess, pasar la bandera AP_EXPR_FLAG_RESTRICTED.
Los tres módulos parcheados usan el mismo patrón para detectar el contexto de análisis de .htaccess:
int in_htaccess = cmd->pool == cmd->temp_pool;
Cuando Apache analiza archivos .htaccess, el pool de configuración por directorio (cmd->pool) es el mismo que el pool temporal (cmd->temp_pool). Esta es una convención interna bien conocida de Apache para detectar el contexto de .htaccess (por directorio) frente al contexto del servidor principal/host virtual.
| Archivo | Descripción |
|---|---|
CVE-2026-24072-analysis.md | Análisis técnico completo y evaluación de impacto |
mod_rewrite.diff | Parche para modules/mappers/mod_rewrite.c |
mod_setenvif.diff | Parche para modules/metadata/mod_setenvif.c |
mod_proxy_fcgi.diff | Parche para modules/proxy/mod_proxy_fcgi.c |
httpd-2.4.66/ | Árbol de código fuente de la versión vulnerable de Apache |
httpd-2.4.67/ | Árbol de código fuente de la versión corregida de Apache |
examples/ | Archivos .htaccess de prueba de concepto |
Este repositorio incluye un laboratorio de pruebas con Docker que le permite alternar entre los módulos mod_rewrite vulnerable y parcheado para verificar que la corrección funciona:
# Construir e iniciar el laboratorio
make build
make up
# Ejecutar la matriz de pruebas automatizada completa (ambas variantes)
make test
El laboratorio utiliza un archivo centinela (/opt/sentinel/secret.txt) que solo puede ser leído por el usuario daemon (el usuario bajo el cual se ejecuta httpd). En la compilación vulnerable, las expresiones .htaccess pueden leer y coincidir con el contenido del centinela. En la compilación corregida, el análisis falla con not available in restricted context.
Consulte docs/TESTING.md para la guía completa.
| Archivo | Descripción |
|---|---|
CVE-2026-24072-analysis.md | Análisis técnico completo y evaluación de impacto |
mod_rewrite.diff | Parche para modules/mappers/mod_rewrite.c |
mod_setenvif.diff | Parche para modules/metadata/mod_setenvif.c |
mod_proxy_fcgi.diff | Parche para modules/proxy/mod_proxy_fcgi.c |
httpd-2.4.66/ | Árbol de código fuente de la versión vulnerable de Apache |
httpd-2.4.67/ | Árbol de código fuente de la versión corregida de Apache |
examples/ | Archivos .htaccess de prueba de concepto |
docker/ | Archivos de compilación Docker para el laboratorio de pruebas |
scripts/ | Scripts de intercambio y prueba |
tests/ | Accesorios de prueba y matriz |
docs/TESTING.md | Guía de pruebas completa |
docs/session/ | Exportación de sesión del proceso de diseño |
Este repositorio es solo para fines educativos y defensivos. Los ejemplos de prueba de concepto están destinados a ayudar a los profesionales de seguridad a comprender y defenderse contra esta vulnerabilidad. No utilice estas técnicas en sistemas que no le pertenezcan o para los cuales no tenga permiso explícito de prueba.