Outra vulnerabilidade no Apache httpd que permite acesso fora do diretório raiz do site

Foi encontrado um novo vetor de ataque para o servidor Apache http, que permaneceu sem correção na atualização 2.4.50 e permite acesso a arquivos de áreas fora do diretório raiz do site. Além disso, os pesquisadores encontraram um método que permite, na presença de certas configurações não padronizadas, não apenas ler arquivos do sistema, mas também executar remotamente seu código no servidor. O problema aparece apenas nas versões 2.4.49 e 2.4.50; versões anteriores não são afetadas. Para eliminar a nova vulnerabilidade, o Apache httpd 2.4.51 foi lançado rapidamente.

Em sua essência, o novo problema (CVE-2021-42013) é completamente semelhante à vulnerabilidade original (CVE-2021-41773) em 2.4.49, a única diferença é uma codificação diferente dos caracteres “..”. Em particular, na versão 2.4.50 a capacidade de usar a sequência "%2e" para codificar um ponto foi bloqueada, mas a possibilidade de codificação dupla foi perdida - ao especificar a sequência "%%32%65", o servidor a decodificou em "%2e" e depois em " .”, ou seja, os caracteres "../" para ir para o diretório anterior podem ser codificados como ".%%32%65/".

Quanto à exploração da vulnerabilidade por meio da execução de código, isso é possível quando o mod_cgi está habilitado e o caminho base é usado no qual a execução de scripts CGI é permitida (por exemplo, se a diretiva ScriptAlias ​​​​está habilitada ou o sinalizador ExecCGI é especificado no Diretiva de opções). Um requisito obrigatório para um ataque bem-sucedido é também fornecer explicitamente acesso a diretórios com arquivos executáveis, como /bin, ou acesso à raiz do sistema de arquivos “/” nas configurações do Apache. Como esse acesso normalmente não é concedido, os ataques de execução de código têm pouca aplicação em sistemas reais.

Ao mesmo tempo, o ataque para obter o conteúdo de arquivos arbitrários do sistema e textos-fonte de scripts da web, legíveis pelo usuário sob o qual o servidor http está sendo executado, permanece relevante. Para realizar tal ataque, basta ter um diretório no site configurado através das diretivas “Alias” ou “ScriptAlias” (DocumentRoot não é suficiente), como “cgi-bin”.

Um exemplo de exploração que permite executar o utilitário “id” no servidor: curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%% 32%65/.%% 32%65/.%%32%65/bin/sh' —data 'echo Tipo de conteúdo: texto/sem formatação; eco; id'uid=1(daemon) gid=1(daemon) grupos=1(daemon)

Um exemplo de exploits que permite exibir o conteúdo de /etc/passwd e um dos scripts da web (para gerar o código do script, o diretório definido através da diretiva “Alias”, para o qual a execução do script não está habilitada, deve ser especificado como o diretório base): curl 'http://192.168.0.1 .32/cgi-bin/.%%65%32/.%%65%32/.%%65%32/.%%65%32/.% %65%192.168.0.1/etc/passwd' curl 'http: //32/aliaseddir/.%%65%32/.%%65%32/.%%65%32/.%%65%32/. %%65%2/usr/local/apacheXNUMX/cgi -bin/test.cgi'

O problema afeta principalmente distribuições continuamente atualizadas como Fedora, Arch Linux e Gentoo, bem como portas do FreeBSD. Pacotes nas ramificações estáveis ​​das distribuições conservadoras de servidores Debian, RHEL, Ubuntu e SUSE não são afetados pela vulnerabilidade. O problema não ocorre se o acesso aos diretórios for negado explicitamente usando a configuração “exigir todos negados”.

Fonte: opennet.ru

Adicionar um comentário