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

Vulnerabilidad en OpenMetadata (CVE-2024-28848)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-94 Control incorrecto de generación de código (Inyección de código)
Fecha de publicación:
15/03/2024
Última modificación:
21/03/2024

Descripción

OpenMetadata es una plataforma unificada para el descubrimiento, la observabilidad y la gobernanza impulsada por un repositorio central de metadatos, un linaje profundo y una colaboración fluida en equipo. El método `?CompiledRule::validateExpression` evalúa una expresión SpEL usando un `StandardEgressionContext`, permitiendo que la expresión alcance e interactúe con clases Java como `java.lang.Runtime`, lo que lleva a la ejecución remota de código. El endpoint `/api/v1/policies/validation/condition/` pasa datos controlados por el usuario `CompiledRule::validateExpession`, lo que permite a los usuarios autenticados (no administradores) ejecutar comandos arbitrarios del sistema en el sistema operativo subyacente. Además, falta una verificación de autorización ya que `Authorizer.authorize()` nunca se llama en la ruta afectada y, por lo tanto, cualquier usuario no administrador autenticado puede activar este endpoint y evaluar expresiones SpEL arbitrarias que conduzcan a la ejecución de comandos arbitrarios. Esta vulnerabilidad se descubrió con la ayuda de la consulta de inyección de lenguaje de expresión (Spring) de CodeQL y también se rastrea como "GHSL-2023-236". Este problema puede provocar la ejecución remota de código y se resolvió en la versión 1.2.4. Se recomienda a los usuarios que actualicen. No se conocen workarounds para esta vulnerabilidad.