Vulnerabilidad en OpenMetadata (CVE-2024-28847)
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:
17/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. De manera similar al problema GHSL-2023-250, `AlertUtil::validateExpression` también se llama desde `EventSubscriptionRepository.prepare()`, lo que puede conducir a la ejecución remota de código. `prepare()` se llama desde `EntityRepository.prepareInternal()` que, a su vez, se llama desde `EntityResource.createOrUpdate()`. Tenga en cuenta que, aunque hay una verificación de autorización (`authorizer.authorize()`), se llama después de que se llama a `prepareInternal()` y, por lo tanto, después de que se haya evaluado la expresión SpEL. Para llegar a este método, un atacante puede enviar una solicitud PUT a `/api/v1/events/subscriptions` que es manejada por `EventSubscriptionResource.createOrUpdateEventSubscription()`. Esta vulnerabilidad se descubrió con la ayuda de la consulta de inyección de lenguaje de expresión (Spring) de CodeQL. Este problema puede provocar la ejecución remota de código y se solucionó en la versión 1.2.4. Se recomienda a los usuarios que actualicen. No se conocen workarounds para esta vulnerabilidad. Este problema también se rastrea como "GHSL-2023-251".
Impacto
Puntuación base 3.x
8.80
Gravedad 3.x
ALTA
Referencias a soluciones, herramientas e información
- https://codeql.github.com/codeql-query-help/java/java-spel-expression-injection
- https://github.com/open-metadata/OpenMetadata/blob/b6b337e09a05101506a5faba4b45d370cc3c9fc8/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java#L693
- https://github.com/open-metadata/OpenMetadata/blob/b6b337e09a05101506a5faba4b45d370cc3c9fc8/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EventSubscriptionRepository.java#L69-L83
- https://github.com/open-metadata/OpenMetadata/blob/b6b337e09a05101506a5faba4b45d370cc3c9fc8/openmetadata-service/src/main/java/org/openmetadata/service/resources/EntityResource.java#L219
- https://github.com/open-metadata/OpenMetadata/blob/b6b337e09a05101506a5faba4b45d370cc3c9fc8/openmetadata-service/src/main/java/org/openmetadata/service/resources/events/subscription/EventSubscriptionResource.java#L289
- https://github.com/open-metadata/OpenMetadata/security/advisories/GHSA-8p5r-6mvv-2435