NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
🐹
🐹 Go
Not in CISA KEV
HIGH severity

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

HIGHFix: golang-jwt/jwt@0951d18

GHSA-mh63-6h87-95cp is a high-severity (CVSS 7.5) CWE-405 vulnerability in github.com/golang-jwt/jwt/v5. A fix is available for github.com/golang-jwt/jwt/v5 — see the affected versions and patch details below.

Also known asCVE-2025-30204GO-2025-3553
Published
Updated
Affected
3 pkgs
Patched
2 / 3
Exploits
None indexed
Exploitation data as of Nov 12, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

No confirmed exploitation observed yet

  • CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
  • CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.

Exploitation and automatability from CISA’s SSVC triage for GHSA-mh63-6h87-95cp.

EPSS Exploitation Probability

via FIRST.org ↗
0.8%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs57th percentile — riskier than 57% of all scored CVEsHighest risk
0.00%0.44%0.87%1.31%0.1%0.8%May 26Sep 26Nov 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

Where this sits among everything scored

Real-World Exposure

3 pkgs affected
🐹github.com/golang-jwt/jwt/v5🐹github.com/golang-jwt/jwt/v4🐹github.com/golang-jwt/jwt

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.

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

Affected Packages

3 total 2 fixed
EcosystemPackageVulnerable rangeFix
🐹Gogithub.com/golang-jwt/jwt/v5≥ 5.0.0-rc.1&&< 5.2.25.2.2go get github.com/golang-jwt/jwt/v5@v5.2.2
🐹Gogithub.com/golang-jwt/jwt/v4all versions4.5.2go get github.com/golang-jwt/jwt/v4@v4.5.2
🐹Gogithub.com/golang-jwt/jwt≥ 3.2.0No fix

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/golang-jwt/jwt/v5, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update github.com/golang-jwt/jwt/v5 to 5.2.2 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-mh63-6h87-95cp is resolved across your whole dependency graph.

  3. Workarounds

    Cap what an attacker can consume: apply request size, rate and timeout limits in front of the affected component, and run it with memory and CPU limits so exhaustion degrades one worker rather than the whole service.

Fixing This On Your OS

If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.

Red HatImportant
Workaround published by Red Hat
Red Hat Product Security does not have a recommended mitigation at this time.
Source: Red Hat security advisory for GHSA-mh63-6h87-95cp (CC BY 4.0)
ProductFixed inAdvisory
Cryostat 4 on RHEL 9cryostat/cryostat-agent-init-rhel9:0.5.0-9RHSA-2025:3503
multicluster engine for Kubernetes 2.4 for RHEL 8multicluster-engine/addon-manager-rhel8:v2.4.9-5RHSA-2025:8390
multicluster engine for Kubernetes 2.5 for RHEL 8multicluster-engine/agent-service-rhel8:v2.5.9-8RHSA-2025:4473
multicluster engine for Kubernetes 2.6 for RHEL 8multicluster-engine/assisted-image-service-rhel8:v2.6.8-8RHSA-2025:13900
multicluster engine for Kubernetes 2.7 for RHEL 8multicluster-engine/assisted-service-8-rhel8:v2.7.5-15RHSA-2025:11573
multicluster engine for Kubernetes 2.8 for RHEL 8multicluster-engine-assisted-service-8-container-v2.8.3-14RHSA-2025:16101
multicluster-globalhub 1.2 for RHEL 9multicluster-globalhub/multicluster-globalhub-agent-rhel9:v1.2.3-2RHSA-2025:9388
multicluster-globalhub 1.4 for RHEL 9multicluster-globalhub/multicluster-globalhub-agent-rhel9:v1.4.1-5RHSA-2025:8384

Frequently Asked Questions

### Summary Function [`parse.ParseUnverified`](https://github.com/golang-jwt/jwt/blob/c035977d9e11c351f4c05dfeae193923cbab49ee/parser.go#L138-L139) currently splits (via a call to [strings.Split](https://pkg.go.dev/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 weaknes
O3 Security · Impact-Aware SCA

Is GHSA-mh63-6h87-95cp in your dependencies?

Find it across Go, including transitive dependencies.

GHSA-mh63-6h87-95cp: jwt — Fixed in 5.2.2