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

CVE-2020-26160 — jwt-go

HIGHFix: dgrijalva/jwt-go#426

CVE-2020-26160 is a high-severity (CVSS 7.5) Improper Authentication vulnerability in github.com/dgrijalva/jwt-go. A fix is available for github.com/dgrijalva/jwt-go — see the affected versions and patch details below.

Authorization bypass in github.com/dgrijalva/jwt-go

Also known asGHSA-w73w-5m7g-f7qcGO-2020-0017SNYK-GOLANG-GITHUBCOMDGRIJALVAJWTGO-596515
Published
Updated
Affected
2 pkgs
Patched
1 / 2
Exploits
None indexed
Exploitation data as of Oct 9, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

EPSS Exploitation Probability

via FIRST.org ↗
2.2%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs82th percentile — riskier than 82% of all scored CVEsHighest risk
0.00%0.93%1.86%2.79%0.1%2.2%Apr 26Aug 26Oct 26

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

How urgent is this, really

CVE-2020-26160 by exploitation likelihood (EPSS) against impact (CVSS). Outside the shaded patch-first corner.

Where this sits among everything scored

Of 385,738 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Counts from FIRST.org, log-scaled.

Real-World Exposure

2 pkgs affected
🐹github.com/dgrijalva/jwt-go🐹github.com/dgrijalva/jwt-go/v4

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

jwt-go allows attackers to bypass intended access restrictions in situations with []string{} for m["aud"] (which is allowed by the specification). Because the type assertion fails, "" is the value of aud. This is a security problem if the JWT token is presented to a service that lacks its own audience check. There is no patch available and users of jwt-go are advised to migrate to golang-jwt at version 3.2.1

Affected Packages

2 total 1 fixed
EcosystemPackageVulnerable rangeFix
🐹Gogithub.com/dgrijalva/jwt-go≥ 0.0.0-20150717181359-44718f8a89b0No fix
🐹Gogithub.com/dgrijalva/jwt-go/v4all versions4.0.0-preview1go get github.com/dgrijalva/jwt-go/v4@v4.0.0-preview1

Affected Products

1 product · 1 configurations
Application
jwt-gojwt-go_project
≤ 3.2.0
range

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/dgrijalva/jwt-go, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    No patched version of github.com/dgrijalva/jwt-go has shipped for CVE-2020-26160 yet. Where your build allows, override or pin the dependency away from the vulnerable range, and apply any maintainer-recommended mitigation.

  3. Workarounds

    Put an independent control in front of the weakness: restrict the affected endpoint or interface to trusted networks, require an additional authentication factor or proxy-level check, and invalidate existing sessions and credentials in case the flaw has already been used.

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 HatModerate

The github.com/dgrijalva/jwt-go module is an indirect dependency of the k8s.io/client-go module pulled into Quay Bridge, and Setup operators via the Operator's SDK generated code. The k8s.io/client-go module does not use jwt-go in an unsafe way [1]. Red Hat Quay components have been marked as wontfix. This may be…

ProductFixed inAdvisory
Cryostat 2 on RHEL 8cryostat-20-tech-preview/cryostat-operator-bundle:2.0.0-6.1639085863RHSA-2021:5110
Openshift Serveless 1.13openshift-serverless-1/client-kn-rhel8:0.19.1-4RHSA-2021:0516
Red Hat OpenShift Container Platform 4.7openshift4/ose-azure-machine-controllers:v4.7.0-202102130115.p0RHSA-2020:5633
Red Hat OpenShift Container Platform 4.8openshift4/ose-baremetal-installer-rhel8:v4.8.0-202106291913.p0.git.a5ddd2d.assembly.streamRHSA-2021:2438
Red Hat OpenShift Container Storage 4.7.0 on RHEL-8ocs4/mcg-rhel8-operator:5.7.0-69.85e2026.5.7RHSA-2021:2041
Red Hat OpenShift Container Storage 4.7.0 on RHEL-8mcg-0:5.7.0-69.85e2026.5.7.el8RHSA-2021:2042

Frequently Asked Questions

jwt-go allows attackers to bypass intended access restrictions in situations with `[]string{}` for `m["aud"]` (which is allowed by the specification). Because the type assertion fails, "" is the value of aud. This is a security problem if the JWT token is presented to a service that lacks its own audience check. There is no patch available and users of jwt-go are advised to migrate to [golang-jwt](https://github.com/golang-jwt/jwt) at version 3.2.1
O3 Security · Impact-Aware SCA

Is CVE-2020-26160 in your dependencies?

Find it across Go, including transitive dependencies.

CVE-2020-26160: jwt-go — Fix Available