
Vulnerabilità RCE in Spring Framework tramite Data Binding su JDK 9+ (CVE-2022-22965 alias "Spring4Shell")
Vulnerabilità RCE in Spring Framework via Data Binding su JDK 9+
L'obiettivo è centralizzare la maggiore quantità di informazioni di pubblico dominio sulla vulnerabilità fino ad oggi e sapere quali azioni intraprendere in tal caso.
Le condizioni (AND) che devono verificarsi sono:
Ad oggi, non è vulnerabile all'exploit. Ma bisogna tenere presente che questa vulnerabilità è di carattere più generale, quindi potrebbero esistere altri modi per sfruttarla.
Spring Framework
Anche le versioni precedenti o non più supportate sono interessate.
Spring Framework
Nel caso in cui non sia possibile patchare la vulnerabilità, Spring ha pubblicato alcuni workarounds.
Apache Tomcat ha rilasciato 3 nuove versioni che offrono una protezione adeguata: 10.0.20, 9.0.62 e 8.5.78, e si suggerisce di considerarle come un livello di protezione aggiuntivo all'aggiornamento di Spring Framework.
Sono state rilasciate le versioni di Spring Boot 2.6.6 e 2.5.12 che dipendono da Spring Framework 5.3.18.
Si può utilizzare il tool https://github.com/hillu/local-spring-vuln-scanner (mirror) per rilevare istanze vulnerabili a Spring4Shell. Un possibile esempio di esecuzione è:
./local-spring-vuln-scanner --verbose --log </path/to/file.log> </path/to/app1> </path/to/appN>
Abbiamo sviluppato una regola di rilevamento per Wazuh che puoi trovare nella directory "detection" di questo repository, la quale, basandosi su una serie di indicatori di attacco (IOA), consente di rilevare i tentativi di attacco.
C'è stata speculazione riguardo a un commit in merito alla conferma per deprecare l'uso del metodo SerializationUtils.deserialize(...). Questa classe non è esposta a input esterni e la deprecazione non è correlata a questa vulnerabilità.
C'è stata confusione con un CVE per Spring Cloud Function pubblicato poco prima della segnalazione di questa vulnerabilità CVE-2022-22963. Anche questo non è correlato.
TryHackMe ha creato un laboratorio interattivo di sfruttamento di Spring4Shell