cbcvebase.
CVE-2024-28254
published 2024-03-15

CVE-2024-28254: OpenMetadata is a unified platform for discovery, observability, and governance powered by a central metadata repository, in-depth lineage, and seamless team…

PriorityP188high8.8CVSS 3.1
AVNACLPRLUINSUCHIHAH
ITWEXPLOITVulnCheck KEV
Exploited in the wild
EPSS
45.73%
98.6th percentile
OpenMetadata is a unified platform for discovery, observability, and governance powered by a central metadata repository, in-depth lineage, and seamless team collaboration. The `‎AlertUtil::validateExpression` method evaluates an SpEL expression using `getValue` which by default uses the `StandardEvaluationContext`, allowing the expression to reach and interact with Java classes such as `java.lang.Runtime`, leading to Remote Code Execution. The `/api/v1/events/subscriptions/validation/condition/` endpoint passes user-controlled data `AlertUtil::validateExpession` allowing authenticated (non-admin) users to execute arbitrary system commands on the underlaying operating system. In addition, there is a missing authorization check since `Authorizer.authorize()` is never called in the affected path and, therefore, any authenticated non-admin user is able to trigger this endpoint and evaluate arbitrary SpEL expressions leading to arbitrary command execution. This vulnerability was discovered with the help of CodeQL's Expression language injection (Spring) query and is also tracked as `GHSL-2023-235`. This issue may lead to Remote Code Execution and has been addressed in version 1.2.4. Users are advised to upgrade. There are no known workarounds for this vulnerability.

Affected

1 ranges
VendorProductVersion rangeFixed in
open-metadataopenmetadata< 1.2.41.2.4

Detection & IOCsextracted from sources · hover to see the quote

url/api/v1/events/subscriptions/validation/condition/
processjava.lang.Runtime
  • Monitor HTTP requests to the endpoint `/api/v1/events/subscriptions/validation/condition/` for SpEL expression injection payloads, especially those referencing `java.lang.Runtime` or containing base64-encoded nested payloads.
  • Detect multi-layer base64 encoded payloads in HTTP request bodies targeting OpenMetadata endpoints; the final decoded payload is a reverse shell command.
  • Alert on reverse shell connections (e.g., via Netcat) originating from OpenMetadata container processes, as attackers establish reverse shells after initial RCE exploitation.
  • Detect suspicious cronjob creation within OpenMetadata containers, used by attackers to maintain persistent access and schedule malicious code execution.
  • Flag outbound network connections from OpenMetadata containers to remote servers in China used to download cryptomining malware payloads.
  • Flag missing authorization checks on the `/api/v1/events/subscriptions/validation/condition/` path — `Authorizer.authorize()` is never called, meaning any authenticated non-admin user can trigger SpEL evaluation.
  • ·Vulnerability affects OpenMetadata versions 1.2.3 and below; version 1.2.4 contains the patch. Ensure workloads are running 1.2.4 or newer.
  • ·The vulnerability uses `StandardEvaluationContext` (not a sandboxed context) for SpEL evaluation, meaning any SpEL expression can reach arbitrary Java classes. Switching to `SimpleEvaluationContext` would restrict this.
  • ·Internet-exposed OpenMetadata workloads with default credentials are at heightened risk; admins should change default credentials in addition to patching.

CVSS provenance

nvdv3.18.8HIGHCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vulncheck8.8HIGH
CVEs like this are exactly what “Exploited This Week” covers.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.