Ejecución Remota de Código (RCE) en Spring Framework

Spring anunció una vulnerabilidad crítica en su framework principal que permite la ejecución remota de código.

Esta vulnerabilidad fue bautizada como Spring4Shell y formalmente registrada como CVE-2022-22963.

La vulnerabilidad afecta directamente las aplicaciones Spring MVC y Spring WebFlux
que utilizan JDK9+.

Un sistema es vulnerable si cuenta con un escenario con las siguientes características:

  • Se utiliza JDK 9+.
  • Se utiliza Apache Tomcat como contenedor Servlet.
  • Se encuentra ejecutando Spring como un WAR (a diferencia de un ejecutable jar de Spring Boot).
  • Se utiliza spring-webmvc o spring-webflux.
  • Corre Spring Framework con las siguientes versiones: 5.3.0 a 5.3.17, 5.2.0 a 5.2.19, y versiones viejas.

Es importante destacar que como se trata de una vulnerabilidad muy general y fue expuesta públicamente sin previo aviso, podrían surgir nuevos escenarios vulnerables.

Recomendaciones

Se deben realizar las siguientes actualizaciones de forma inmediata.

  • Actualizar Spring Framework a la versión 5.3.18 o 5.2.20.
  • Una vez actualizado Spring Framework a su versión 5.3.18 se debe actualizar Spring Boot 2.6.6 y 2.5.12

Actualizar Apache Tomcat a las versiones 10.0.20, 9.0.62, and 8.5.78. Con estas versiones se eliminan los vectores de ataque del lado de Apache Tomcat.

En caso de utilizar versiones antiguas recomendamos consultar alternativas de mitigación y seguir las instrucciones que brinda Spring  (ver referencias).

Referencias

https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement

https://www.bleepingcomputer.com/news/security/600k-wordpress-sites-impacted-by-critical-plugin-rce-vulnerability/

https://patchstack.com/articles/critical-vulnerability-fixed-in-essential-addons-for-elementor-plugin/