Cyber Resilience

CVE-2024-28254

HighRCE

Published: 15 March 2024

Published
15 March 2024
Modified
04 September 2025
KEV Added
Patch
CVSS Score v3.1 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
EPSS Score 0.5394 98.1th percentile
Risk Priority 50 60% EPSS · 20% KEV · 20% CVSS

Summary

CVE-2024-28254 is a high-severity OS Command Injection (CWE-78) vulnerability in Open-Metadata Openmetadata. Its CVSS base score is 8.8 (High).

Operationally, ranked in the top 1.9% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog.

Deeper analysis

OpenMetadata, a metadata platform for data discovery and governance, contains a critical expression language injection flaw in the AlertUtil::validateExpression method. The method invokes getValue on a user-supplied SpEL expression using the default StandardEvaluationContext, which permits direct access to classes such as java.lang.Runtime. The affected REST endpoint /api/v1/events/subscriptions/validation/condition/<expression> accepts attacker-controlled input and passes it directly to this method.

Any authenticated non-admin user can therefore submit a crafted expression that results in arbitrary operating-system command execution. The path lacks an authorization check—Authorizer.authorize() is never invoked—allowing any logged-in account to reach the vulnerable code and obtain full remote code execution on the underlying host.

The vulnerability is tracked as GHSL-2023-235 and was fixed in OpenMetadata 1.2.4; the project advisory states that users must upgrade and that no workarounds exist.

EPSS scores rose from a low baseline to a peak of 0.6187 (current value 0.5394), indicating that exploitation interest increased measurably after public disclosure.

EU & UK References

Vulnerability details

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…

more

to reach and interact with Java classes such as `java.lang.Runtime`, leading to Remote Code Execution. The `/api/v1/events/subscriptions/validation/condition/<expression>` 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.

CWE(s)

Related Threats

No named actor attribution yet. ATT&CK technique mapping in progress for this CVE.

Affected Assets

open-metadata
openmetadata
≤ 1.2.4

Mitigating Controls

Likely Mitigating Controls AI

Per-CVE control mapping for this CVE has not run yet; the list below is derived from the weakness types (CWEs) cited in the NVD entry.

addresses: CWE-78

Platform-independent apps typically execute inside a managed runtime or sandbox that restricts direct OS command execution, reducing the ability to exploit OS command injection.

addresses: CWE-78

Validates inputs to block special elements that would alter OS command execution.

References