Falha Ghostcat afeta todas as versões do Tomcat
25 de fevereiro de 2020
0 minutos de leituraApache Tomcat é uma implementação de código aberto das tecnologias Java Servlet, JavaServer Pages, Java Expression Language e Java WebSocket. O Tomcat é um dos ambientes de servidor web HTTP Java mais populares e foi lançado em 1998.
Ghostcat é uma vulnerabilidade de alta gravidade no Tomcat, descoberta em 3 de janeiro pelos pesquisadores de segurança da Chaitin Tech. Em 20 de fevereiro, o China National Vulnerability Database (CNVD) publicou um alerta de segurança sobre o problema, com o número CNVD-2020-10487.
A vulnerabilidade foi encontrada no Apache JServ Protocol (AJP). O problema é que esse protocolo binário permite que um invasor leia ou inclua qualquer arquivo nos diretórios de aplicações web do Tomcat.
Conector AJP
O conector AJP é responsável pela comunicação entre o Tomcat e o mundo externo. Por padrão, ele fica habilitado no Apache Tomcat, na porta 8009, nas versões de 6 a 9. Como o CVE-2020-1938 é uma vulnerabilidade de leitura e inclusão de arquivos no conector AJP do Tomcat, todas as versões que não incluem a correção estão vulneráveis.
A vulnerabilidade permite que um invasor leia o conteúdo dos arquivos da aplicação web. Se a aplicação permitir o envio de arquivos, o invasor também poderá enviar qualquer arquivo para o servidor, incluindo páginas Java Server Pages (JSP) maliciosas que permitem a execução remota de código no servidor.

Solução
O Apache Tomcat já lançou versões corrigidas para o Tomcat 7, 8 e 9:
Os pesquisadores da Chaitin recomendam que, além de aplicar a correção, você adicione um segredo adequado à configuração do conector no arquivo /conf/server.xml.
Quando não for possível aplicar a correção, há outras formas de reduzir o risco, segundo os pesquisadores da Chaitin.
Se você não usa o conector AJP, pode comentar ou excluir com segurança a declaração do conector AJP no arquivo /conf/server.xml.
Se você usa o conector AJP e não pode atualizar para a versão corrigida, adicione um campo requiredSecret com um segredo seguro e difícil de adivinhar.
Spring Boot
A versão mais recente do relatório do ecossistema JVM mostra que o Spring Boot é o framework de back-end mais usado nesse ecossistema. O Spring Boot usa um servidor web incorporado e, por padrão, usa a versão incorporada do Tomcat. É possível que o spring-boot-starter-web tenha incluído no seu sistema uma versão vulnerável do pacote Apache Tomcat incorporado.
Editado em 2 de março de 2020
É importante saber que, por padrão, o Spring Boot não cria um conector AJP automaticamente. Isso significa que, com as configurações padrão, um invasor não consegue explorar essa vulnerabilidade. No entanto, é possível configurar o Spring Boot de outras formas. Dependendo da sua configuração, verifique se você está vulnerável e tome as medidas necessárias.
Comece a resolver desafios de capture the flag
Aprenda a resolver desafios de capture the flag assistindo sob demanda ao nosso workshop virtual introdutório.



