CVE-2021-42013: path traversal no Apache 2.4.50, verificar e corrigir
Última atualização:
O Apache HTTP Server 2.4.50 corrigiu a CVE-2021-41773, mas não por completo: codificar o ponto duas vezes (%%32%65, onde %32 é 2 e %65 é e) ainda permitia sair das pastas mapeadas. Ela afeta a 2.4.49 e a 2.4.50, com os mesmos resultados: arquivos fora da raiz de documentos e execução de código onde o CGI está ativado.
O Apache a corrigiu na 2.4.51, lançada três dias depois da 2.4.50.
Em resumo
- CVE
- CVE-2021-42013
- Software
- Apache HTTP Server
- Versões afetadas
- 2.4.49 e 2.4.50
- Corrigida em
- 2.4.51
- Pontuação CVSS
- 9.8 Crítica (NVD, CVSS 3.1) ·
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CISA Known Exploited Vulnerabilities
- Sim, adicionada em 3 de novembro de 2021
- Publicada pelo NVD
- 7 de outubro de 2021
- Patch virtual do InfraFence
vp-cve-2021-42013(ModSecurity id 9920002)
O que é afetado
Só o Apache 2.4.49 e 2.4.50. Como na CVE-2021-41773, arquivos ficam expostos onde <Directory /> não mantém o Require all denied padrão, e código é executado onde mod_cgi ou mod_cgid serve uma pasta com alias como /cgi-bin/.
Verificar se um servidor está vulnerável
Verifique a versão:
apache2 -vhttpd -v/usr/local/apache2/bin/httpd -vNa 2.4.49 ou 2.4.50, verifique se a raiz do sistema de arquivos nega o acesso e se algum módulo CGI está carregado:
sudo grep -rn -A3 '<Directory />' /etc/apache2/ /etc/httpd/ /usr/local/apache2/conf/ 2>/dev/nullsudo apachectl -M 2>/dev/null | grep -i cgiAs tentativas deixam pontos codificados nos logs de acesso:
sudo grep -rhiE '\.%2e/|%2e\./|%2e%2e/|%%32%65|\.%%32' --include='*access*' --exclude='*.gz' /var/log/apache2 /var/log/httpd 2>/dev/null | tail -20Corrigir
Atualize para a 2.4.51 ou posterior (a atualização reinicia o Apache: escolha um momento tranquilo):
sudo apt-get update
sudo apt-get install --only-upgrade apache2
apache2 -vsudo dnf upgrade httpd
httpd -vRecompile uma instalação a partir do código-fonte da versão 2.4 atual, ou baixe uma nova imagem de contêiner. Mantenha a raiz do sistema de arquivos fechada e recarregue:
<Directory />
AllowOverride None
Require all denied
</Directory>sudo apachectl configtest && sudo apachectl gracefulAtenção: Requisições bem-sucedidas (status 200) com pontos codificados duas vezes nos logs significam que arquivos podem ter sido lidos e, com CGI, comandos executados: investigue o servidor antes de confiar nele de novo.
Como o InfraFence a bloqueia enquanto você atualiza
O patch virtual para a CVE-2021-42013 é uma regra ModSecurity sobre o caminho bruto da requisição: ele bloqueia o ponto codificado duas vezes (%%32%65, %%32e, .%%32, %2%65). Aplique-o junto com o patch para a CVE-2021-41773, que bloqueia a forma codificada uma vez.
Como o patch é aplicado
- O agente anota quais portas SSH e quais sites respondem.
- Ele grava a regra (id ModSecurity 9920002) entre os próprios marcadores no seu arquivo ModSecurity, executa
apachectl configteste recarrega o Apache de forma suave. Se o teste falhar, o arquivo anterior volta ao lugar. - Ele verifica se o SSH e os sites ainda respondem, e remove o patch se não responderem.
- Ele verifica se o ModSecurity realmente bloqueia com a regra, com uma requisição de teste local inofensiva. Um ModSecurity em
DetectionOnlysó registra: nesse caso, o patch é removido e reportado como ineficaz, nunca como aplicado.
Cada requisição que o patch bloqueia é reportada com CVE-2021-42013 (agente 1.0.37 ou posterior): você vê as tentativas na atividade do servidor e na página Exploração do painel, e assim sabe que a vulnerabilidade está sendo testada contra você.
Atenção: Um patch virtual bloqueia a forma conhecida do ataque nas requisições que passam pelo Apache naquele servidor. Ele não substitui a atualização: instale a versão corrigida e depois remova o patch em Atividade com Desfazer, se não precisar mais dele.
Os patches virtuais precisam do Apache com ModSecurity, da configuração Permitir alterações na configuração do servidor web e de nenhum painel de hospedagem ou ferramenta de gerenciamento de configuração controlando o servidor web; eles fazem parte do plano Pro e do AutoMode. Uma pessoa os aplica a partir da análise por IA, ou o AutoMode faz isso. Veja Patches virtuais.
Fontes
Os fatos desta página vêm destas fontes; consulte-as para ver se houve mudanças.
Teste grátis em 1 servidor
O Starter é gratuito para um servidor, com proteção completa e bloqueio automático. Sem cartão de crédito.
Instale o agente como root, com o seu token no lugar de <TOKEN>:
curl -fsSL https://github.com/infrafence/infrafence-agent/releases/latest/download/install.sh | sudo bash -s -- --token <TOKEN>O token é criado no painel, em Servidores › Adicionar servidor.
