Spring4Shell: descubierto un nuevo día cero - Tecnología ISH

Spring4Shell: descubierto un nuevo día cero

Spring-core es un framework ampliamente utilizado en aplicaciones Java que permite a los desarrolladores de software desarrollar aplicaciones Java con componentes de clase empresarial. Se ha identificado una nueva vulnerabilidad que afecta a este producto y ya están disponibles en Internet exploits y pruebas de concepto que la aprovechan.

SRING4SHELL - CVE-2022-22965

"Spring4Shell" o "SpringShell" es una vulnerabilidad en Spring framework , publicada el 30 de marzo de 2022, siendo una vulnerabilidad de día cero o zero-day, que permite la ejecución remota de código - Remote Code Execution (RCE). La explotación de esta vulnerabilidad depende de un endpoint con DataBinder habilitado, que decodifica los datos del cuerpo de la petición automáticamente. Esta propiedad puede permitir a un atacante aprovechar Spring4Shell contra una aplicación vulnerable.

Requisitos para la explotación de la vulnerabilidad:

  • JDK 9 o superior;
  • Apache Tomcat como contenedor de Servlets;
  • Empaquetado como un WAR tradicional (a diferencia de un jar ejecutable de Spring Boot);
  • Dependencia spring-webmvc o spring-webflux;
  • Spring Framework versiones 5.3.0 a 5.3.17, 5.2.0 a 5.2.19 y versiones anteriores.

Conclusión

Ante una vulnerabilidad que aún no ha sido parcheada, se recomienda seguir las instrucciones proporcionadas por el fabricante como forma de mitigar temporalmente la vulnerabilidad.

Paso a paso

Primer paso

Buscar globalmente la nota en el grupo de aplicaciones @InitBinder y ver si el dataBinder.setDisallowedFields dentro del método. Si se encuentra este fragmento de código, añada { "clase.", "Clase.", ".clase.", ".Clase."} a la lista de bloques original. (Nota: si este fragmento de código se utiliza con más frecuencia, será necesario añadirlo en cada ubicación).

Paso 2

Cree la siguiente clase global en el paquete del proyecto y asegúrese de que la clase es cargada por Spring (recomendamos añadirla al paquete donde se encuentra el Controlador). Después de añadir la clase, es necesario volver a compilar, generar un nuevo paquete de proyecto, verificar la funcionalidad y volver a publicar el proyecto.

Las recomendaciones dadas por Spring y más detalles pueden encontrarse en los siguientes enlaces:

Acerca de la vulnerabilidad 0day de Spring Core Spring Beans Aviso de advertencia de ejecución remota de código

Spring Framework RCE

Referencias

  1. Blog de Qualys
  2. Spring.io

Dejar un comentario

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *.