Vulnerabilidad RCE en Spring Framework vía Data Binding on JDK 9+
El objetivo es centralizar la mayor cantidad de información de público conocimiento hasta el momento de la vulnerabilidad y poder saber qué acciones tomar en tal caso.
Las condiciones (AND) que se tienen que dar son:
- JDK 9 +
- Apache Tomcat como Servlet container
- Aplicación empaquetada como WAR
- Dependencia spring-webmvc o spring-webflux
A la fecha, no es vulnerable al exploit. Pero tener en cuenta que esta vulnerabilidad es de caracter más general por lo que pudieran existir otras formas de explotarla.
Spring Framework
- 5.3.0 to 5.3.17
- 5.2.0 to 5.2.19
Las versiones anteriores o ya no soportadas también son afectadas.
Spring Framework
- 5.3.18+
- 5.2.20+
En caso que no sea posible patchear la vulnerabilidad, Spring publicó algunos workarounds.
Apache Tomcat ha lanzado 3 versiones nuevas que ofrecen una protección adecuada 10.0.20, 9.0.62 y 8.5.78 y se sugiere sean consideradas como una capa de protección adicional a la actualización de Spring Framework.
Se publicaron las versiones de Spring Boot 2.6.6 y 2.5.12 que dependen de Spring Framework 5.3.18.
Se puede utilizar la tool https://github.com/hillu/local-spring-vuln-scanner (mirror) a fin de detectar instancias vulnerables a Spring4Shell. Un posible ejemplo de ejecución es:
./local-spring-vuln-scanner --verbose --log </path/to/file.log> </path/to/app1> </path/to/appN>
Hemos desarrollado una rule de deteccion para Wazuh que podras conseguir en el directorio de "detection" de este repositorio, el cual basado en una cantidad de indicadores de ataques (IOA) es posible detectar los intentos de ataques.
-
Hubo especulación acerca de un commit en torno a la confirmación para desaprobar el uso del método SerializationUtils.deserialize(...). Esta clase no está expuesta a entradas externas y la desaprobación no está relacionada con esta vulnerabilidad.
-
Hubo confusión con un CVE para Spring Cloud Function que se publicó justo antes del informe de esta vulnerabilidad CVE-2022-22963. Tampoco está relacionado.
TryHackMe ha creado un laboratorio interactivo de explotación de Spring4Shell
- https://tanzu.vmware.com/security/cve-2022-22965
- https://app.howlermonkey.io/vulnerabilities/CVE-2022-22965
- https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
- https://spring.io/blog/2022/04/01/spring-framework-rce-mitigation-alternative
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities
- https://www.cyberkendra.com/2022/03/spring4shell-details-and-exploit-code.html
- https://www.praetorian.com/blog/spring-core-jdk9-rce/
- https://mp.weixin.qq.com/s/kgw-O4Hsd9r2vfme3Y2Ynw
- http://blog.o0o.nu/2010/06/cve-2010-1622.html
- https://www.microsoft.com/security/blog/2022/04/04/springshell-rce-vulnerability-guidance-for-protecting-against-and-detecting-cve-2022-22965/
- https://unit42.paloaltonetworks.com/cve-2022-22965-springshell/