Miggo Logo

CVE-2025-27144:
DoS in go-jose Parsing

6.6

CVSS Score
4.0

Basic Information

EPSS Score
0.16917%
Published
2/24/2025
Updated
2/26/2025
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/go-jose/go-jose/v4go< 4.0.54.0.5
github.com/go-jose/go-jose/v3go< 3.0.43.0.4
github.com/go-jose/go-josego< 3.0.43.0.4

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability description states that the strings.Split(token, ".") call was the source of excessive memory consumption. The provided commit 99b346cec4e86d102284642c5dcbe9bb0cacfc22 shows changes in two functions, ParseEncryptedCompact in jwe.go and parseSignedCompact in jws.go. In both functions, the vulnerable strings.Split(input, ".") call was replaced with strings.SplitN(input, ".", n) and an additional check using strings.Count(input, ".") was added to ensure the correct number of parts before splitting. This directly addresses the described vulnerability. The test file jws_test.go was also updated with test cases for tokens with an excessive number of parts, further confirming these functions were the ones affected.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Imp**t W**n p*rsin* *omp**t JWS or JW* input, *o-jos* *oul* us* *x**ssiv* m*mory. T** *o** us** strin*s.Split(tok*n, ".") to split JWT tok*ns, w*i** is vuln*r**l* to *x**ssiv* m*mory *onsumption w**n pro**ssin* m*li*iously *r**t** tok*ns wit* * l

Reasoning

T** vuln*r**ility **s*ription st*t*s t**t t** `strin*s.Split(tok*n, ".")` **ll w*s t** sour** o* *x**ssiv* m*mory *onsumption. T** provi*** *ommit `****************************************` s*ows ***n**s in two *un*tions, `P*rs**n*rypt***omp**t` in `