{ "id": "CVE-2024-28253", "sourceIdentifier": "security-advisories@github.com", "published": "2024-03-15T20:15:09.807", "lastModified": "2024-11-21T09:06:06.263", "vulnStatus": "Awaiting Analysis", "cveTags": [], "descriptions": [ { "lang": "en", "value": "OpenMetadata is a unified platform for discovery, observability, and governance powered by a central metadata repository, in-depth lineage, and seamless team collaboration. `CompiledRule::validateExpression` is also called from `PolicyRepository.prepare`. `prepare()` is called from `EntityRepository.prepareInternal()` which, in turn, gets called from `EntityResource.createOrUpdate()`. Note that even though there is an authorization check (`authorizer.authorize()`), it gets called after `prepareInternal()` gets called and therefore after the SpEL expression has been evaluated. In order to reach this method, an attacker can send a PUT request to `/api/v1/policies` which gets handled by `PolicyResource.createOrUpdate()`. This vulnerability was discovered with the help of CodeQL's Expression language injection (Spring) query and is also tracked as `GHSL-2023-252`. This issue may lead to Remote Code Execution and has been addressed in version 1.3.1. Users are advised to upgrade. There are no known workarounds for this vulnerability." }, { "lang": "es", "value": "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\u00f3n fluida en equipo. `CompiledRule::validateExpression` tambi\u00e9n se llama desde `PolicyRepository.prepare`. `prepare()` se llama desde `EntityRepository.prepareInternal()` que, a su vez, se llama desde `EntityResource.createOrUpdate()`. Tenga en cuenta que aunque hay una verificaci\u00f3n de autorizaci\u00f3n (`authorizer.authorize()`), se llama despu\u00e9s de que se llama a `prepareInternal()` y, por lo tanto, despu\u00e9s de que se haya evaluado la expresi\u00f3n SpEL. Para llegar a este m\u00e9todo, un atacante puede enviar una solicitud PUT a `/api/v1/policies` que es manejada por `PolicyResource.createOrUpdate()`. Esta vulnerabilidad se descubri\u00f3 con la ayuda de la consulta de inyecci\u00f3n de lenguaje de expresi\u00f3n (Spring) de CodeQL y tambi\u00e9n se rastrea como \"GHSL-2023-252\". Este problema puede provocar la ejecuci\u00f3n remota de c\u00f3digo y se solucion\u00f3 en la versi\u00f3n 1.3.1. Se recomienda a los usuarios que actualicen. No se conocen workarounds para esta vulnerabilidad." } ], "metrics": { "cvssMetricV31": [ { "source": "security-advisories@github.com", "type": "Secondary", "cvssData": { "version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L", "baseScore": 9.4, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "LOW" }, "exploitabilityScore": 3.9, "impactScore": 5.5 } ] }, "weaknesses": [ { "source": "security-advisories@github.com", "type": "Secondary", "description": [ { "lang": "en", "value": "CWE-94" } ] } ], "references": [ { "url": "https://codeql.github.com/codeql-query-help/java/java-spel-expression-injection", "source": "security-advisories@github.com" }, { "url": "https://github.com/open-metadata/OpenMetadata/blob/b6b337e09a05101506a5faba4b45d370cc3c9fc8/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java#L693", "source": "security-advisories@github.com" }, { "url": "https://github.com/open-metadata/OpenMetadata/blob/b6b337e09a05101506a5faba4b45d370cc3c9fc8/openmetadata-service/src/main/java/org/openmetadata/service/resources/EntityResource.java#L219", "source": "security-advisories@github.com" }, { "url": "https://github.com/open-metadata/OpenMetadata/blob/b6b337e09a05101506a5faba4b45d370cc3c9fc8/openmetadata-service/src/main/java/org/openmetadata/service/resources/policies/PolicyResource.java#L365", "source": "security-advisories@github.com" }, { "url": "https://github.com/open-metadata/OpenMetadata/blob/main/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/PolicyRepository.java#L113", "source": "security-advisories@github.com" }, { "url": "https://github.com/open-metadata/OpenMetadata/security/advisories/GHSA-7vf4-x5m2-r6gr", "source": "security-advisories@github.com" }, { "url": "https://codeql.github.com/codeql-query-help/java/java-spel-expression-injection", "source": "af854a3a-2127-422b-91ae-364da2661108" }, { "url": "https://github.com/open-metadata/OpenMetadata/blob/b6b337e09a05101506a5faba4b45d370cc3c9fc8/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java#L693", "source": "af854a3a-2127-422b-91ae-364da2661108" }, { "url": "https://github.com/open-metadata/OpenMetadata/blob/b6b337e09a05101506a5faba4b45d370cc3c9fc8/openmetadata-service/src/main/java/org/openmetadata/service/resources/EntityResource.java#L219", "source": "af854a3a-2127-422b-91ae-364da2661108" }, { "url": "https://github.com/open-metadata/OpenMetadata/blob/b6b337e09a05101506a5faba4b45d370cc3c9fc8/openmetadata-service/src/main/java/org/openmetadata/service/resources/policies/PolicyResource.java#L365", "source": "af854a3a-2127-422b-91ae-364da2661108" }, { "url": "https://github.com/open-metadata/OpenMetadata/blob/main/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/PolicyRepository.java#L113", "source": "af854a3a-2127-422b-91ae-364da2661108" }, { "url": "https://github.com/open-metadata/OpenMetadata/security/advisories/GHSA-7vf4-x5m2-r6gr", "source": "af854a3a-2127-422b-91ae-364da2661108" } ] }