GHSA-c6gw-w398-hv78
DoS in go-jose Parsing
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| Go | github.com/go-jose/go-jose/v4 | < 4.0.5 | 4.0.5 |
| Go | github.com/go-jose/go-jose/v3 | < 3.0.4 | 3.0.4 |
| Go | github.com/go-jose/go-jose | < 3.0.4 | 3.0.4 |
Details
As written in the advisory (Markdown source, shown as plain text).
### Impact
When parsing compact JWS or JWE input, go-jose could use excessive memory. The code used strings.Split(token, ".") to split JWT tokens, which is vulnerable to excessive memory consumption when processing maliciously crafted tokens with a large number of '.' characters. An attacker could exploit this by sending numerous malformed tokens, leading to memory exhaustion and a Denial of Service.
### Patches
Version 4.0.5 fixes this issue
### Workarounds
Applications could pre-validate payloads passed to go-jose do not contain an excessive number of '.' characters.
### References
This is the same sort of issue as in the golang.org/x/oauth2/jws package as CVE-2025-22868 and Go issue https://go.dev/issue/71490.
References
External links from the advisory. They lead to third-party sites.
- https://github.com/go-jose/go-jose/security/advisories/GHSA-c6gw-w398-hv78
- https://nvd.nist.gov/vuln/detail/CVE-2025-27144
- https://github.com/golang/go/issues/71490
- https://github.com/go-jose/go-jose/commit/99b346cec4e86d102284642c5dcbe9bb0cacfc22
- https://github.com/go-jose/go-jose
- https://github.com/go-jose/go-jose/releases/tag/v4.0.5
- https://go.dev/issue/71490