Miggo Logo

CVE-2023-28867: GraphQL Java vulnerable to stack consumption

7.5

CVSS Score
3.1

Basic Information

EPSS Score
0.27144%
Published
3/27/2023
Updated
4/3/2023
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
com.graphql-java:graphql-javamaven< 0.0.0-2023-03-20T01-49-44-80e31350.0.0-2023-03-20T01-49-44-80e3135
com.graphql-java:graphql-javamaven>= 1.2, < 17.517.5
com.graphql-java:graphql-javamaven>= 18.0, < 18.418.4
com.graphql-java:graphql-javamaven>= 19.0, < 19.419.4
com.graphql-java:graphql-javamaven= 20.020.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from recursive parsing logic without depth limits. The key evidence comes from:- 1) The fix in PR #3112 explicitly adds depth tracking and limits to the parser- 2) CWE-770 classification indicates unbounded resource allocation (stack space in this case)- 3) Multiple patched versions across different branches all mention 'preventing stack overflow via depth limiting'- 4) The ANTLR recursive descent parser architecture mentioned in the PR discussion is inherently stack-based- While specific function names aren't listed in the advisory, the parser entry point (parseDocument) and grammar rules are the logical location for this vulnerability based on the patch description and stack consumption nature.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

In *r*p*QL J*v* (*k* *r*p*ql-j*v*) ***or* **.*, *n *tt**k*r **n s*n* * *r**t** *r*p*QL qu*ry t**t **us*s st**k *onsumption. T** *ix** v*rsions *r* **.*, **.*, **.*, **.*, *n* *.*.*-****-**-**T**-**-**-*******.

Reasoning

T** vuln*r**ility st*ms *rom r**ursiv* p*rsin* lo*i* wit*out **pt* limits. T** k*y *vi**n** *om*s *rom:- *) T** *ix in PR #**** *xpli*itly ***s **pt* tr**kin* *n* limits to t** p*rs*r- *) *W*-*** *l*ssi*i**tion in*i**t*s un*oun*** r*sour** *llo**tion