Em 17 de dezembro de 2020, o A equipe de segurança de pesquisa da Astra divulgou que eles descobriram uma vulnerabilidade de carregamento irrestrito de arquivo de gravidade crítica no Contact Form 7, o plugin WordPress mais popular de todos os tempos. O pesquisador principal, Jinson Varghese, também publicou um postagem do blog fornecendo informações limitadas sobre esta vulnerabilidade.
A divulgação inicial afirmava que “Ao explorar esta vulnerabilidade, os invasores podem simplesmente fazer upload de arquivos de qualquer tipo, ignorando todas as restrições colocadas em relação aos tipos de arquivo permitidos para upload em um site.”
Na época, não foi possível duplicar a exploração e publicou nossa análise com base nas melhores informações disponíveis, o que indicou que a vulnerabilidade seria difícil de explorar e provavelmente exigiria um relatório muito específico configuração, mas queríamos esperar até que uma prova de conceito pública estivesse disponível.
Uma prova de conceito mínima enviada para wpvulndb pelo pesquisador original foi disponibilizado em 31 de dezembro de 2020. Uma Prova de Conceito separada e não verificada apareceu no exploit-db em 20 de dezembro de 2020. Em 10 de janeiro de 2021, a equipe de segurança da Astra atualizou seu anúncio de vulnerabilidade informando que uma prova de conceito completa não seria lançada.
Nenhum de nossos analistas de ameaças foi capaz de usar essas Provas de Conceito iniciais ou quaisquer variantes delas para realizar o upload irrestrito de arquivos e, de fato, já havíamos tentado várias variantes de cada Prova de Conceito quando a vulnerabilidade foi divulgada pela primeira vez, devido à nossa análise de o patch do plug-in indicou que essa pode ser uma abordagem viável.
Fomos capazes de usar uma extensão dupla mais um caractere Unicode para passar em uma única verificação de segurança, a função wpcf7_antiscript_file_name
, mas esta função foi apenas uma das várias medidas de segurança em vigor para o processo de upload, e ignorá-lo não permitia o upload de arquivos com extensões que seriam executáveis em qualquer uma de nossas configurações de teste. O mais recente desses recursos de segurança adicionais, a adição de um diretório aleatório, está em vigor para mais de 6 anos .
Não fomos capazes de fazer upload de arquivos com extensão “.php”, nem de fazer upload de arquivos com extensões duplas (por exemplo, file.php.jpg, ou file.jpg.php, com ou sem um invisível separador Unicode entre as duas extensões) que seria analisado por qualquer configuração de servidor da web recente que testamos. As configurações que testamos incluem Apache com uma diretiva PHP AddHandler, Apache com uma diretiva SetHandler ancorada, Apache + PHP-FPM, NGINX + FastCGI, Litespeed e IIS. Além disso, não vimos nenhuma evidência de que essa vulnerabilidade seja explorada com sucesso na natureza.
Entramos em contato com o pesquisador de segurança original solicitando mais informações, mas não tivemos resposta até o momento desta publicação. Também entramos em contato com o desenvolvedor do plug-in, que indicou que reconhecia o desvio na função wpcf7_antiscript_file_name
como uma vulnerabilidade potencial, mas não havia recebido uma Prova de Conceito que contornasse as outras medidas de segurança. Entramos em contato com a Astra Security, que nos indicou sua postagem atualizada indicando que nenhuma prova de conceito seria lançada e que eles também não tinham visto nenhuma evidência de que a vulnerabilidade estava sendo explorada em estado selvagem.
A pesquisa de segurança de código aberto é incrivelmente importante e torna todo o ecossistema WordPress mais seguro. É extremamente importante que as configurações vulneráveis sejam conhecidas; qualquer configuração de servidor que permite que essa vulnerabilidade seja explorada pode permitir que vulnerabilidades atualmente não descobertas em outros plug-ins também sejam exploradas. Também é importante para a credibilidade da nossa indústria que esta pesquisa seja verificável de forma independente. Embora percebamos que pode haver boas razões para não tornar pública uma Prova de Conceito, fornecer tal Prova de Conceito a outros pesquisadores de segurança permite que a indústria melhore sua resposta a ameaças conhecidas.
Por esses motivos, solicitamos que a equipe de pesquisa do Astra Security, ou qualquer outra pessoa da comunidade WordPress ou de segurança que possa fazer isso, nos forneça mais informações sobre essa vulnerabilidade, como gostaríamos de fazer de forma independente duplicar o problema para confirmar seu impacto, não apenas para os milhões de usuários do Formulário de Contato 7, mas também para o ecossistema WordPress mais amplo. Estamos solicitando configurações de servidor e plug-in vulneráveis nas quais é possível fazer upload de um arquivo PHP executável por meio dessa vulnerabilidade, bem como uma prova de conceito completa que nos permite duplicar o problema.
A postagem Descobrindo problemas potenciais com a vulnerabilidade do formulário de contato 7: mais dados necessários apareceu primeiro em Wordfence .