Miggo Logo

CVE-2024-7254: protobuf-java has potential Denial of Service issue

7.5

CVSS Score
3.1

Basic Information

EPSS Score
0.33072%
Published
9/19/2024
Updated
4/23/2025
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.google.protobuf:protobuf-javamaven< 3.25.53.25.5
com.google.protobuf:protobuf-javalitemaven< 3.25.53.25.5
com.google.protobuf:protobuf-kotlinmaven< 3.25.53.25.5
com.google.protobuf:protobuf-kotlin-litemaven< 3.25.53.25.5
google-protobufrubygems< 3.25.53.25.5
google-protobufrubygems>= 4.0.0.rc.1, < 4.27.54.27.5
google-protobufrubygems>= 4.28.0.rc.1, < 4.28.24.28.2
com.google.protobuf:protobuf-kotlin-litemaven>= 4.0.0.rc.1, < 4.27.54.27.5
com.google.protobuf:protobuf-kotlin-litemaven>= 4.28.0.rc.1, < 4.28.24.28.2
com.google.protobuf:protobuf-kotlinmaven>= 4.0.0.rc.1, < 4.27.54.27.5
com.google.protobuf:protobuf-kotlinmaven>= 4.28.0.rc.1, < 4.28.24.28.2
com.google.protobuf:protobuf-javalitemaven>= 4.0.0.rc.1, < 4.27.54.27.5
com.google.protobuf:protobuf-javalitemaven>= 4.28.0.rc.1, < 4.28.24.28.2
com.google.protobuf:protobuf-javamaven>= 4.0.0.rc.1, < 4.27.54.27.5
com.google.protobuf:protobuf-javamaven>= 4.28.0.rc.1, < 4.28.24.28.2

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability is a Denial of Service caused by stack overflow due to unbounded recursion when parsing protobuf messages with deeply nested unknown groups. I analyzed the provided commit patches, focusing on changes that introduced recursion depth counters and limits. The functions where these checks were added are considered the previously vulnerable functions. Key functions identified are those directly involved in decoding/merging unknown fields (especially groups), such as com.google.protobuf.ArrayDecoders.decodeUnknownField and com.google.protobuf.UnknownFieldSchema.mergeOneFieldFrom / com.google.protobuf.UnknownFieldSchema.mergeFrom. Additionally, com.google.protobuf.CodedInputStream.skipMessage was patched as skipping deeply nested structures could also trigger the vulnerability. Functions for merging known message and group fields (com.google.protobuf.ArrayDecoders.mergeMessageField, com.google.protobuf.ArrayDecoders.mergeGroupField) also received recursion checks, indicating they could be part of problematic recursion chains, though the vulnerability description emphasizes 'unknown fields'.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Summ*ry W**n p*rsin* unknown *i*l*s in t** Proto*u* J*v* Lit* *n* *ull li*r*ry, * m*li*iously *r**t** m*ss*** **n **us* * St**kOv*r*low *rror *n* l*** to * pro*r*m *r*s*. R*port*r: *l*xis ***ll*n**, Tr*il o* *its **osyst*m S**urity T**m <**osyst

Reasoning

T** vuln*r**ility is * **ni*l o* S*rvi** **us** *y st**k ov*r*low *u* to un*oun*** r**ursion w**n p*rsin* proto*u* m*ss***s wit* ***ply n*st** unknown *roups. I *n*lyz** t** provi*** *ommit p*t***s, *o*usin* on ***n**s t**t intro*u*** r**ursion **pt*