CVE-2020-26160
Authorization bypass in github.com/dgrijalva/jwt-go
jwt-go before 4.0.0-preview1 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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.5
jwt-go before 4.0.0-preview1 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.
- Record
CVE-2020-26160- CVSS 3.1
- 7.5 High
CVSS:3.1/AC:L/AV:N/A:N/C:H/I:N/PR:N/S:U/UI:N - Updated
- 2026-11-02
EUVDEUVD-2021-1212
7.5
jwt-go before 4.0.0-preview1 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.
- Record
EUVD-2021-1212- CVSS 3.1
- 7.5 High
CVSS:3.1/AC:L/AV:N/A:N/C:H/I:N/PR:N/S:U/UI:N - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-w73w-5m7g-f7qc
7.5
Authorization bypass in github.com/dgrijalva/jwt-go
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
- Record
GHSA-w73w-5m7g-f7qc- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-287, CWE-755
- Updated
- 2026-11-02
NVD
7.5
jwt-go before 4.0.0-preview1 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.
- Record
CVE-2020-26160- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:P/I:N/A:N - Weakness
- CWE-287, CWE-755
- Updated
- 2026-11-02
OSVALPINE-CVE-2020-26160
7.5
jwt-go before 4.0.0-preview1 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.
- Record
ALPINE-CVE-2020-26160- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-03
OSVAZL-41684
7.5
CVE-2020-26160 affecting package dcos-cli for versions less than 1.2.0-15
jwt-go before 4.0.0-preview1 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.
- Record
AZL-41684- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-05
Show 8 moreShow less
OSV
7.5
jwt-go before 4.0.0-preview1 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.
- Record
CVE-2020-26160- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVDEBIAN-CVE-2020-26160
7.5
jwt-go before 4.0.0-preview1 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.
- Record
DEBIAN-CVE-2020-26160- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVGHSA-w73w-5m7g-f7qc
7.5
Authorization bypass in github.com/dgrijalva/jwt-go
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
- Record
GHSA-w73w-5m7g-f7qc- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-287, CWE-755
- Updated
- 2026-11-02
OSVRHSA-2021:2042
7.5
Red Hat Security Advisory: Red Hat OpenShift Container Storage 4.7 RPM security, bug fix, and enhancement update
- Record
RHSA-2021:2042- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2020-26160
7.5
jwt-go before 4.0.0-preview1 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.
- Record
UBUNTU-CVE-2020-26160- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVGO-2020-0017 No score
Authorization bypass in github.com/dgrijalva/jwt-go
If a JWT contains an audience claim with an array of strings, rather than a single string, and MapClaims.VerifyAudience is called with req set to false, then audience verification will be bypassed, allowing an invalid set of audiences to be provided.
- Record
GO-2020-0017- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11428-1 No score
telegraf-1.19.0-1.2 on GA media
These are all security issues fixed in the telegraf-1.19.0-1.2 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11428-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11668-1 No score
velero-plugin-for-microsoft-azure-1.3.1-1.1 on GA media
These are all security issues fixed in the velero-plugin-for-microsoft-azure-1.3.1-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11668-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/dgrijalva/jwt-go/v4Go |
before 4.0.0-preview1 | 4.0.0-preview1 |
github.com/dgrijalva/jwt-goGo |
0.0.0-20150717181359-44718f8a89b0 to 3.2.0 | None known |
giteaAlpine:v3.14 |
before 1.14.6-r0 | 1.14.6-r0 |
giteaAlpine:v3.15 |
before 1.14.6-r0 | 1.14.6-r0 |
giteaAlpine:v3.16 |
before 1.14.6-r0 | 1.14.6-r0 |
giteaAlpine:v3.17 |
before 1.14.6-r0 | 1.14.6-r0 |
giteaAlpine:v3.18 |
before 1.14.6-r0 | 1.14.6-r0 |
giteaAlpine:v3.19 |
before 1.14.6-r0 | 1.14.6-r0 |
giteaAlpine:v3.20 |
before 1.14.6-r0 | 1.14.6-r0 |
giteaAlpine:v3.21 |
before 1.14.6-r0 | 1.14.6-r0 |
Show 18 moreShow less
| Package | Affected | Fixed |
|---|---|---|
giteaAlpine:v3.22 |
before 1.14.6-r0 | 1.14.6-r0 |
giteaAlpine:v3.23 |
before 1.14.6-r0 | 1.14.6-r0 |
giteaAlpine:v3.24 |
before 1.14.6-r0 | 1.14.6-r0 |
dcos-cliAzure Linux:3 |
before 1.2.0-15 | 1.2.0-15 |
golang-github-dgrijalva-jwt-goDebian:12 |
before 3.2.0-3 | 3.2.0-3 |
github.com/dgrijalva/jwt-goGo |
0.0.0-20150717181359-44718f8a89b0 and later | None known |
mcgRed Hat:openshift_container_storage:4.7::el8 From an advisory covering 2 CVEs |
before 0:5.7.0-69.85e2026.5.7.el8 | 0:5.7.0-69.85e2026.5.7.el8 |
golang-github-dgrijalva-jwt-goUbuntu:16.04:LTS |
All versions, plus listed versions 2.3.0-1 |
None known |
golang-github-dgrijalva-jwt-goUbuntu:18.04:LTS |
All versions, plus listed versions 3.0.0.1+REALLY.2.6.0-13.0.0.1+REALLY.2.6.0-23.0.0.1+REALLY.2.6.0-3 |
None known |
golang-github-coreos-discovery-etcd-ioUbuntu:20.04:LTS |
All versions, plus listed versions 2.0.0+git2019.04.19.git.78fb45d3c9-1 |
None known |
golang-github-dgrijalva-jwt-goUbuntu:20.04:LTS |
All versions, plus listed versions 3.0.0.1+REALLY.2.6.0-33.2.0-1 |
None known |
golang-github-coreos-discovery-etcd-ioUbuntu:22.04:LTS |
All versions, plus listed versions 2.0.0+git2019.04.19.git.78fb45d3c9-4 |
None known |
golang-github-coreos-discovery-etcd-ioUbuntu:24.04:LTS |
All versions, plus listed versions 2.0.0+git2019.04.19.git.78fb45d3c9-4build12.0.0+git2019.04.19.git.78fb45d3c9-4ubuntu0.24.04.12.0.0+git2019.04.19.git.78fb45d3c9-4ubuntu0.24.04.22.0.0+git2019.04.19.git.78fb45d3c9-4ubuntu0.24.04.3 |
None known |
golang-github-coreos-discovery-etcd-ioUbuntu:25.10 |
All versions, plus listed versions 2.0.0+git2019.04.19.git.78fb45d3c9-4build1 |
None known |
golang-github-coreos-discovery-etcd-ioUbuntu:26.10 |
All versions, plus listed versions 2.0.0+git2019.04.19.git.78fb45d3c9-4build2 |
None known |
golang-github-coreos-discovery-etcd-ioUbuntu:26.04:LTS |
All versions, plus listed versions 2.0.0+git2019.04.19.git.78fb45d3c9-4build12.0.0+git2019.04.19.git.78fb45d3c9-4build2 |
None known |
telegrafopenSUSE:Tumbleweed |
before 1.19.0-1.2 | 1.19.0-1.2 |
velero-plugin-for-microsoft-azureopenSUSE:Tumbleweed |
before 1.3.1-1.1 | 1.3.1-1.1 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | mlbrilliance/aurora-demo-lockfile | 2026-05-11 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| affected, aliases, references | OSV | |
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV, PoC in GitHub |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2020-26160 is a high vulnerability (CVSS 7.5) in Jwt-go Project Jwt-go, published September 30, 2020. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 2.16%, the 82nd percentile. Fixed in github.com/dgrijalva/jwt-go/v4 4.0.0-preview1.
References
github.com/dgrijalva/jwt-go/pull/426
snyk.io/vuln/SNYK-GOLANG-GITHUBCOMDGRIJALVAJWTGO-596515
nvd.nist.gov/vuln/detail/CVE-2020-26160
github.com/dgrijalva/jwt-go/issues/422
github.com/dgrijalva/jwt-go/issues/462
github.com/dgrijalva/jwt-go/commit/ec0a89a131e3e8567adcb21254a5cd20a70ea4ab
Show 19 moreShow less
pkg.go.dev/vuln/GO-2020-0017
github.com/advisories/GHSA-w73w-5m7g-f7qc
security.alpinelinux.org/vuln/CVE-2020-26160
security-tracker.debian.org/tracker/CVE-2020-26160
github.com/dgrijalva/jwt-go
access.redhat.com/errata/RHSA-2021:2042
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=1883371
bugzilla.redhat.com/show_bug.cgi?id=1897635
bugzilla.redhat.com/show_bug.cgi?id=1941502
security.access.redhat.com/data/csaf/v2/advisories/2021/rhsa-2021_2042.json
access.redhat.com/security/cve/CVE-2020-26160
cve.org/CVERecord?id=CVE-2020-26160
access.redhat.com/security/cve/CVE-2020-28362
cve.org/CVERecord?id=CVE-2020-28362
nvd.nist.gov/vuln/detail/CVE-2020-28362
ubuntu.com/security/CVE-2020-26160
github.com/golang-jwt/jwt/pull/12
suse.com/security/cve/CVE-2020-26160