Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

[Actualización 01/04/2022] Múltiples vulnerabilidades en productos Spring

Fecha de publicación 31/03/2022
Importancia
5 - Crítica
Recursos Afectados
  • Spring Framework, versiones:
    • desde 5.3.0 hasta 5.3.16;
    • las versiones más antiguas y sin soporte también se ven afectadas.
  • Spring Cloud Function, versiones:
    • 3.1.6;
    • 3.2.2;
    • las versiones más antiguas y sin soporte también se ven afectadas.
  • Spring Core, todas las versiones (según diversos investigadores, afecta a todos los usuarios que ejecutan JDK versión 9 y superiores, debido a una corrección parcial de la vulnerabilidad CVE-2010-1622).
Descripción

Spring es un proyecto mantenido por Spring.io (una filial de VMWare) y es utilizado por muchos frameworks de software empresarial basados en Java. Se han identificado 3 vulnerabilidades en Spring:

  • DoS en Spring Framework, descubierta por 4ra1n, con severidad media e identificador CVE-2022-22950;
  • RCE en Spring Cloud Function, descubierta por m09u3r, con severidad media e identificador CVE-2022-22963;
  • RCE 0day en Spring Core (Spring4Shell), aún bajo investigación.
Solución
  • Spring Framework, actualizar a la versión 5.3.17 o superiores.
  • Spring Cloud Function, actualizar a las versiones 3.1.7 o 3.2.3.
  • Spring Core, como medida de mitigación temporal recogida por Praetorian, se recomienda crear un componente ControllerAdvice (que es un componente de Spring compartido entre Controllers) y añadir una blacklist de patrones de campos vulnerables necesarios para la explotación. Adicionalmente, otras medidas de mitigación para Spring4Shell son:
    • implementar reglas de filtrado y monitorización en el WAF, haciendo referencia a "class" ("class.*", "*.class.*", "Class.*", y "*.Class.*");
    • utilizar reglas de Yara para detectar actividades relacionadas.
Detalle
  • Un usuario podría proporcionar una expresión SpEL (Spring Expression Language) especialmente diseñada para causar una condición de denegación de servicio (DoS) en Spring Framework. Se ha asignado el identificador CVE-2022-22950 para esta vulnerabilidad.
  • Cuando se utiliza la funcionalidad de enrutamiento, sería posible que un usuario proporcione una expresión SpEL especialmente diseñada como expresión de enrutamiento, lo que podría dar lugar a un acceso a los recursos locales de Spring Cloud Function. Se ha asignado el identificador CVE-2022-22963 para esta vulnerabilidad.
  • La vulnerabilidad Spring4Shell podría permitir a un atacante remoto, no autenticado, ejecutar código arbitrario en el sistema objetivo.

Encuesta valoración