Vulnerabilidad de ejecución remota de código en el núcleo de Spring Framework (SpringShell) (CVE-2022-22965)
ANÁLISIS
La vulnerabilidad permite a un atacante la ejecución remota de código (RCE) no autenticado. El error existe en el método getCachedIntrospectionResults, que se puede usar para obtener acceso no autorizado a dichos objetos pasando sus nombres de clase a través de una solicitud HTTP. La explotación de esta vulnerabilidad podría resultar en la instalación de un webshell en el servidor comprometido que permita una mayor ejecución del comando. [2]
Productos afectados:
- Spring Framework 5.3.0 - 5.3.17
- Spring Framework 5.2.0 - 5.2.19
- Spring Framework < 5.2.0
- Contenedor de aplicaciones: Apache Tomcat (Actualmente los exploits solo están disponibles para este entorno)
- Aplicaciones empaquetadas como WAR
- Dependencias: SpringMVC y Spring WebFlux
- JDK >=9
Esta vulnerabilidad tiene una puntuación CVSSv3 de 9.8, por lo que se considera de prioridad crítica. [3]
Existen pruebas de concepto que exploten esta vulnerabilidad. [4]
RECOMENDACIONES
Spring Framework ya ha parcheado la vulnerabilidad a partir de las versiones 5.3.18 y 5.2.20, por lo que se recomienda actualizar a estas versiones desde el repositorio oficial [5].
Si una actualización no es posible, también se plantean las siguientes soluciones como alternativa:
- Actualizar Apache Tomcat a las versiones 10.0.20, 9.0.62 o 8.5.78
- Regresar a la versión 8 de Java JDK.
- Otra solución alternativa es deshabilitar el enlace a campos particulares configurando disallowedFieldson WebDataBinder globalmente.
No obstante, estas soluciones alternativas no ofrecen la misma protección que actualizar Spring Framework. [6]
REFERENCIAS
[1] https://unit42.paloaltonetworks.com/cve-2022-22965-springshell/
[2] https://securelist.com/spring4shell-cve-2022-22965/106239/
[3] https://www.tarlogic.com/es/blog/vulnerabilidad-spring4shell-cve-2022-22965-cve-2022-22963/
[4] https://github.com/sunnyvale-it/CVE-2022-22965-PoC
[5] https://repo.spring.io/ui/native/release/org/springframework/spring/
[6] https://securelist.com/spring4shell-cve-2022-22965/106239/