Miggo Logo

CVE-2024-55238: OpenMetadata SQL Injection

7.1

CVSS Score
3.1

Basic Information

EPSS Score
0.10593%
Published
4/17/2025
Updated
4/24/2025
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
org.open-metadata:openmetadata-servicemaven<= 1.4.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability description explicitly identifies the listCount function in the WorkflowDAO interface as vulnerable, with workflowtype and status parameters being the vectors for SQL injection. The provided commit 47a13e27cf24465c44044ac79654b87dde8d39a8 contains changes to openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/CollectionDAO.java, where the WorkflowDAO interface is defined. The diff for this file clearly shows that the listCount(ListFilter filter) method within WorkflowDAO was modified to replace direct string concatenation of workflowType and status parameters with parameterized query syntax (e.g., :workflowType, :status) and the addition of @BindMap Map<String, ?> params to the underlying JDBI @SqlQuery method. This directly addresses the described SQL injection vulnerability. The reference URLs to the vulnerable code in a previous commit (blob 98945cb2...) at lines L4243 and L4247 confirm the exact vulnerable string formatting lines that were changed by the patch. The other changes in the commit are part of a broader effort to secure similar database interactions but the specifically reported vulnerability is addressed by the changes in WorkflowDAO.listCount.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

Op*nM*t***t* <=*.*.* is vuln*r**l* to SQL Inj**tion. *n *tt**k*r **n *xtr**t in*orm*tion *rom t** **t***s* in *un*tion list*ount in t** Work*low**O int*r****. T** work*lowtyp* *n* st*tus p*r*m*t*rs **n ** us** to *uil* * SQL qu*ry.

Reasoning

T** vuln*r**ility **s*ription *xpli*itly i**nti*i*s t** `list*ount` *un*tion in t** `Work*low**O` int*r**** *s vuln*r**l*, wit* `work*lowtyp*` *n* `st*tus` p*r*m*t*rs **in* t** v**tors *or SQL inj**tion. T** provi*** *ommit `*************************