
Vulnerabilidade RCE no Spring Framework via Data Binding no JDK 9+ (CVE-2022-22965 aka "Spring4Shell")
Vulnerabilidade RCE no Spring Framework via Data Binding no JDK 9+
O objetivo é centralizar o máximo de informações de conhecimento público até o momento sobre a vulnerabilidade e poder saber quais ações tomar nesse caso.
As condições (AND) que devem ser atendidas são:
Até o momento, não é vulnerável ao exploit. Mas tenha em mente que essa vulnerabilidade é de caráter mais geral, portanto podem existir outras formas de explorá-la.
Spring Framework
As versões anteriores ou já não suportadas também são afetadas.
Spring Framework
Caso não seja possível corrigir a vulnerabilidade, a Spring publicou alguns workarounds.
O Apache Tomcat lançou 3 novas versões que oferecem proteção adequada: 10.0.20, 9.0.62 e 8.5.78, e sugere-se que sejam consideradas como uma camada adicional de proteção à atualização do Spring Framework.
Foram publicadas as versões Spring Boot 2.6.6 e 2.5.12 que dependem do Spring Framework 5.3.18.
Pode-se utilizar a ferramenta https://github.com/hillu/local-spring-vuln-scanner (mirror) a fim de detectar instâncias vulneráveis ao Spring4Shell. Um possível exemplo de execução é:
./local-spring-vuln-scanner --verbose --log </path/to/file.log> </path/to/app1> </path/to/appN>
Desenvolvemos uma regra de detecção para Wazuh que você pode encontrar no diretório "detection" deste repositório, a qual, baseada em uma série de indicadores de ataque (IOA), é possível detectar tentativas de ataque.
Houve especulação sobre um commit em torno da confirmação para desaprovar o uso do método SerializationUtils.deserialize(...). Esta classe não está exposta a entradas externas e a desaprovação não está relacionada a esta vulnerabilidade.
Houve confusão com um CVE para Spring Cloud Function que foi publicado pouco antes do relato desta vulnerabilidade CVE-2022-22963. Também não está relacionado.
O TryHackMe criou um laboratório interativo de exploração do Spring4Shell