Ejecución remota de código no autenticada en Ivanti EPMM mediante inyección EL en Bean Validation (CVE-2025-4427 y CVE-2025-4428)

Se ha descubierto una grave vulnerabilidad en Ivanti Endpoint Manager Mobile (EPMM) que permite a atacantes ejecutar código en el servidor sin necesidad de autenticación. El problema reside en la forma en que el sistema valida la entrada antes de verificar si un usuario está autorizado. Este defecto permite comprometer la aplicación simplemente enviando una solicitud web especialmente diseñada.

ProductoMobileIron-MDM
Fecha2025-05-20 14:04:56
Información
  • Corrección disponible
  • Explotación activa

Resumen técnico

CVE-2025-4427 y CVE-2025-4428 se derivan de cómo Ivanti EPMM gestiona la validación y los controles de seguridad en Spring MVC. En particular:

  • Cuando un usuario envía una solicitud a puntos de conexión (endpoints) como /api/v2/featureusage, los parámetros de la solicitud se asocian a un objeto de datos (DeviceFeatureUsageReportQueryRequest).
  • Si se utiliza la anotación @Valid, Spring invoca los validadores personalizados como DeviceFeatureUsageReportQueryRequestValidator antes de verificar si el usuario está autenticado o autorizado.
  • Dentro de este validador, Ivanti utiliza buildConstraintViolationWithTemplate() con entrada no filtrada controlada por el atacante.
  • Dado que Hibernate Validator puede procesar expresiones EL (ej. ${3*333}), estas se evalúan inmediatamente en el contexto del servidor.
  • Como consecuencia, un atacante puede obtener ejecución remota de código (RCE) no autenticada inyectando expresiones EL maliciosas (Expression Language Injection).
  • Un problema similar existe también en ScepSubjectValidator, activado durante la inscripción SCEP a certificados por parte de un administrador autenticado.
  • La vulnerabilidad se introdujo debido a un defecto fundamental en el orden de validación de Spring: la validación de beans ocurre antes de los controles de acceso @PreAuthorize de Spring Security.

Ejemplo:

Una solicitud GET a:

GET /api/v2/featureusage?format=${3*333} HTTP/2

devuelve:

Format '999' is invalid. Valid formats are 'json', 'csv'.

confirmando que las expresiones EL se evalúan, incluso sin autenticación.

Recomendaciones

Las organizaciones que utilizan Ivanti EPMM deben actualizar inmediatamente a una de las versiones parcheadas:

  • 11.12.0.5
  • 12.3.0.2
  • 12.4.0.2
  • 12.5.0.1

Además:

  • Verificar los validadores personalizados para asegurarse de que no inserten datos no confiables en los mensajes de error.
  • Deshabilitar la evaluación EL en el renderizado de plantillas donde no sea necesaria.
  • Asegurarse de que los controles de autorización ocurran siempre antes de cualquier procesamiento de la entrada del usuario o lógica de validación.

[Callforaction-THREAT-Footer]