GitHub Advisoryadvisory · Go

GHSA-mh63-6h87-95cp jwt-go allows excessive memory allocation during header parsing

HIGH Published 2025-03-21 Modified 2025-04-10 Official page ↗
Aliases
CVE-2025-30204
Ecosystem
Go
Packages
github.com/golang-jwt/jwt/v5, github.com/golang-jwt/jwt/v4, github.com/golang-jwt/jwt
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-405
Reviewed
2025-03-21

Affected packages

• Go github.com/golang-jwt/jwt/v5: >= 5.0.0-rc.1, < 5.2.2 → fixed in 5.2.2 • Go github.com/golang-jwt/jwt/v4: < 4.5.2 → fixed in 4.5.2 • Go github.com/golang-jwt/jwt: >= 3.2.0, <= 3.2.2 (no fix yet)

Description

Summary Function `parse.ParseUnverified` currently splits (via a call to strings.Split) its argument (which is untrusted data) on periods. As a result, in the face of a malicious request whose _Authorization_ header consists of `Bearer ` followed by many period characters, a call to that function incurs allocations to the tune of O(n) bytes (where n stands for the length of the function's argument), with a constant factor of about 16. Relevant weakness: CWE-405: Asymmetric Resource Consumption (Amplification) Details See `parse.ParseUnverified` Impact Excessive memory allocation

Related

Alias · CVE (1)

  • CVE-2025-30204 golang-jwt is a Go implementation of JSON Web Tokens. vulnerability

Weakness · CWE (1)

  • CWE-405 Asymmetric Resource Consumption (Amplification) weakness

References