
Análise técnica do CVE-2026-24072, uma escalada local de privilégios no mod_rewrite do Apache HTTP Server, incluindo causa raiz, correções e laboratório de testes em Docker para verificação.
CVE-2026-24072 é uma vulnerabilidade de escalação de privilégios local de severidade moderada no Apache HTTP Server 2.4.66 e versões anteriores. Ela permite que autores locais de
.htaccessleiam arquivos arbitrários no sistema de arquivos com os privilégios do usuáriohttpd, aproveitando a avaliação de expressõesap_exprdentro domod_rewrite,mod_setenvifemod_proxy_fcgi.
| Campo | Valor |
|---|
| ID do CVE | CVE-2026-24072 |
| Severidade | Moderada (Escalação de Privilégios Local / Divulgação de Informações) |
| Afetados | Apache HTTP Server <= 2.4.66 |
| Corrigido | Apache HTTP Server 2.4.67 |
| Vetor de Ataque | Local (requer acesso de escrita ao .htaccess) |
CVE-2026-24072-analysis.mdmod_rewrite.diff, mod_setenvif.diff, mod_proxy_fcgi.diffexamples/O mecanismo de avaliação de expressões do Apache (ap_expr) fornece funções de introspecção do sistema de arquivos:
file(path) — lê o conteúdo de arquivosfilesize(path) — retorna o tamanho do arquivo-d path, -e path, -f path, -s path, -L path, -h path, -x path — testes do sistema de arquivosNo 2.4.66 e versões anteriores, módulos como mod_rewrite (via RewriteCond expr=...), mod_setenvif (via SetEnvIfExpr) e mod_proxy_fcgi (via expressões de condição ProxyFCGIBackendType) analisavam e avaliavam expressões ap_expr sem passar o sinalizador AP_EXPR_FLAG_RESTRICTED ao operar no contexto .htaccess. Isso significava que qualquer usuário local que pudesse escrever um arquivo .htaccess poderia usar essas funções de expressão para sondar ou ler o sistema de arquivos com todos os privilégios do processo httpd.
A correção é conceitualmente simples: ao analisar expressões ap_expr no contexto .htaccess, passe o sinalizador AP_EXPR_FLAG_RESTRICTED.
Todos os três módulos corrigidos usam o mesmo idioma para detectar o contexto de análise .htaccess:
int in_htaccess = cmd->pool == cmd->temp_pool;
Quando o Apache analisa arquivos .htaccess, o pool de configuração por diretório (cmd->pool) é o mesmo que o pool temporário (cmd->temp_pool). Esta é uma convenção interna bem conhecida do Apache para detectar o contexto .htaccess (por diretório) versus o contexto do servidor principal/host virtual.
| Arquivo | Descrição |
|---|---|
CVE-2026-24072-analysis.md | Análise técnica completa e avaliação de impacto |
mod_rewrite.diff | Patch para modules/mappers/mod_rewrite.c |
mod_setenvif.diff | Patch para modules/metadata/mod_setenvif.c |
mod_proxy_fcgi.diff | Patch para modules/proxy/mod_proxy_fcgi.c |
httpd-2.4.66/ | Árvore de código-fonte da versão vulnerável do Apache |
httpd-2.4.67/ | Árvore de código-fonte da versão corrigida do Apache |
examples/ | Arquivos .htaccess de prova de conceito |
Este repositório inclui um laboratório de testes Dockerizado que permite alternar entre os módulos mod_rewrite vulnerável e corrigido para verificar se a correção funciona:
# Construir e iniciar o laboratório
make build
make up
# Executar a matriz de testes automatizada completa (ambas as variantes)
make test
O laboratório usa um arquivo sentinela (/opt/sentinel/secret.txt) que só pode ser lido pelo usuário daemon (o usuário sob o qual o httpd executa). Na compilação vulnerável, as expressões .htaccess podem ler e corresponder ao conteúdo da sentinela. Na compilação corrigida, a análise falha com not available in restricted context.
Consulte docs/TESTING.md para o guia completo.
| Arquivo | Descrição |
|---|---|
CVE-2026-24072-analysis.md | Análise técnica completa e avaliação de impacto |
mod_rewrite.diff | Patch para modules/mappers/mod_rewrite.c |
mod_setenvif.diff | Patch para modules/metadata/mod_setenvif.c |
mod_proxy_fcgi.diff | Patch para modules/proxy/mod_proxy_fcgi.c |
httpd-2.4.66/ | Árvore de código-fonte da versão vulnerável do Apache |
httpd-2.4.67/ | Árvore de código-fonte da versão corrigida do Apache |
examples/ | Arquivos .htaccess de prova de conceito |
docker/ | Arquivos de build Docker para o laboratório de testes |
scripts/ | Scripts de alternância e teste |
tests/ | Fixtures de teste e matriz |
docs/TESTING.md | Guia de testes completo |
docs/session/ | Exportação de sessão do processo de design |
Este repositório é apenas para fins educacionais e defensivos. Os exemplos de prova de conceito destinam-se a ajudar profissionais de segurança a entender e se defender contra esta vulnerabilidade. Não use estas técnicas em sistemas que você não possui ou para os quais não tem permissão explícita para testar.