Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
🐹
🐹 Go
Not in CISA KEV
HIGH severity

CVE-2025-30204 — v5

HIGHFix: golang-jwt/jwt@0951d18

CVE-2025-30204 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.

jwt-go allows excessive memory allocation during header parsing

Also known asGHSA-mh63-6h87-95cpGO-2025-3553
Published
Mar 21, 2025
Updated
Aug 12, 2026
Affected
3 pkgs
Patched
2 / 3
Exploits
None indexed
Exploitation data as of Sep 23, 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 CVE-2025-30204.

EPSS Exploitation Probability

via FIRST.org ↗
0.7%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs53th percentile — riskier than 53% of all scored CVEsHighest risk

EPSS (Exploit Prediction Scoring System) is a daily probability model maintained by FIRST.org. It estimates the likelihood a CVE will be exploited in production environments within the next 30 days, derived from real-world threat intelligence signals.

How urgent is this, really

CVE-2025-30204 plotted by exploitation likelihood (EPSS) against impact (CVSS). The shaded corner — EPSS 50%+ and CVSS 7.0+ — is where this CVE doesn't sit, though severity or exploitability alone can still warrant action.

Where this sits among everything scored

Of 378,156 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Real counts from FIRST.org, not a sample — log-scaled since the landscape is heavily right-skewed.

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

golang-jwt is a Go implementation of JSON Web Tokens. Starting in version 3.2.0 and prior to versions 5.2.2 and 4.5.2, the function parse.ParseUnverified 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. This issue is fixed in 5.2.2 and 4.5.2.

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 CVE-2025-30204 is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

  4. How O3 protects you

    O3 Security's impact-aware SCA analyses which vulnerable code paths your application actually calls, so a match like CVE-2025-30204 can be triaged on real exposure rather than presence alone.

Tailored to CVE-2025-30204. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

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
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

golang-jwt is a Go implementation of JSON Web Tokens. Starting in version 3.2.0 and prior to versions 5.2.2 and 4.5.2, the function parse.ParseUnverified 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. This issue is fixed in 5.2.2 and 4.5.2.
O3 Security · Impact-Aware SCA

Is CVE-2025-30204 in your dependencies?

O3 Security finds CVE-2025-30204 across Go dependencies, including transitive ones, and its impact-aware SCA ranks findings by whether your code actually calls the vulnerable path.

CVE-2025-30204: v5 (High 7.5) | O3 Security