{"id":"CVE-2020-26160","aliases":["ALPINE-CVE-2020-26160","AZL-41684","DEBIAN-CVE-2020-26160","EUVD-2021-1212","GHSA-w73w-5m7g-f7qc","GO-2020-0017","RHSA-2021:2042","SNYK-GOLANG-GITHUBCOMDGRIJALVAJWTGO-596515","UBUNTU-CVE-2020-26160","openSUSE-SU-2024:11428-1","openSUSE-SU-2024:11668-1"],"status":"published","title":"Authorization bypass in github.com/dgrijalva/jwt-go","description":"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.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AC:L/AV:N/A:N/C:H/I:N/PR:N/S:U/UI:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.02158,"percentile":0.82427,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-287","CWE-755"],"published":"2020-09-30T12:57:10Z","modified":"2026-11-05T05:40:51Z","exploits":[{"source":"pocgithub","id":"mlbrilliance/aurora-demo-lockfile","title":"mlbrilliance/aurora-demo-lockfile","date":"2026-05-11","url":"https://github.com/mlbrilliance/aurora-demo-lockfile"}],"fixes":[{"ecosystem":"Go","package":"github.com/dgrijalva/jwt-go/v4","fixed_in":["4.0.0-preview1"],"sources":["ghsa","osv"]},{"ecosystem":"Alpine:v3.14","package":"gitea","fixed_in":["1.14.6-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.15","package":"gitea","fixed_in":["1.14.6-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.16","package":"gitea","fixed_in":["1.14.6-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.17","package":"gitea","fixed_in":["1.14.6-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.18","package":"gitea","fixed_in":["1.14.6-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.19","package":"gitea","fixed_in":["1.14.6-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.20","package":"gitea","fixed_in":["1.14.6-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.21","package":"gitea","fixed_in":["1.14.6-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.22","package":"gitea","fixed_in":["1.14.6-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.23","package":"gitea","fixed_in":["1.14.6-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"gitea","fixed_in":["1.14.6-r0"],"sources":["osv"]},{"ecosystem":"Azure Linux:3","package":"dcos-cli","fixed_in":["1.2.0-15"],"sources":["osv"]},{"ecosystem":"Debian:12","package":"golang-github-dgrijalva-jwt-go","fixed_in":["3.2.0-3"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"telegraf","fixed_in":["1.19.0-1.2"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"velero-plugin-for-microsoft-azure","fixed_in":["1.3.1-1.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"Go","package":"github.com/dgrijalva/jwt-go/v4","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.0-preview1"}]}]},{"source":"ghsa","ecosystem":"Go","package":"github.com/dgrijalva/jwt-go","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.0.0-20150717181359-44718f8a89b0"},{"last_affected":"3.2.0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.14","package":"gitea","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.14.6-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.15","package":"gitea","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.14.6-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.16","package":"gitea","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.14.6-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.17","package":"gitea","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.14.6-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.18","package":"gitea","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.14.6-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.19","package":"gitea","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.14.6-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.20","package":"gitea","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.14.6-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.21","package":"gitea","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.14.6-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.22","package":"gitea","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.14.6-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.23","package":"gitea","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.14.6-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"gitea","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.14.6-r0"}]}]},{"source":"osv","ecosystem":"Azure Linux:3","package":"dcos-cli","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.0-15"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"golang-github-dgrijalva-jwt-go","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.2.0-3"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/dgrijalva/jwt-go","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-20150717181359-44718f8a89b0"},{"last_affected":"3.2.0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/dgrijalva/jwt-go/v4","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"4.0.0-preview1"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/dgrijalva/jwt-go","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-20150717181359-44718f8a89b0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/dgrijalva/jwt-go/v4","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"4.0.0-preview1"}]}]},{"source":"osv","ecosystem":"Red Hat:openshift_container_storage:4.7::el8","package":"mcg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.7.0-69.85e2026.5.7.el8"}]}],"bundled":2},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"golang-github-dgrijalva-jwt-go","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.3.0-1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"golang-github-dgrijalva-jwt-go","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.0.1+REALLY.2.6.0-1","3.0.0.1+REALLY.2.6.0-2","3.0.0.1+REALLY.2.6.0-3"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"golang-github-coreos-discovery-etcd-io","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.0+git2019.04.19.git.78fb45d3c9-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"golang-github-dgrijalva-jwt-go","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.0.1+REALLY.2.6.0-3","3.2.0-1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"golang-github-coreos-discovery-etcd-io","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.0+git2019.04.19.git.78fb45d3c9-4"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"golang-github-coreos-discovery-etcd-io","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.0+git2019.04.19.git.78fb45d3c9-4build1","2.0.0+git2019.04.19.git.78fb45d3c9-4ubuntu0.24.04.1","2.0.0+git2019.04.19.git.78fb45d3c9-4ubuntu0.24.04.2","2.0.0+git2019.04.19.git.78fb45d3c9-4ubuntu0.24.04.3"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"golang-github-coreos-discovery-etcd-io","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.0+git2019.04.19.git.78fb45d3c9-4build1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"golang-github-coreos-discovery-etcd-io","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.0+git2019.04.19.git.78fb45d3c9-4build2"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"golang-github-coreos-discovery-etcd-io","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.0+git2019.04.19.git.78fb45d3c9-4build1","2.0.0+git2019.04.19.git.78fb45d3c9-4build2"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"telegraf","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.19.0-1.2"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"velero-plugin-for-microsoft-azure","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.1-1.1"}]}]}],"products":[{"vendor":"jwt-go_project","product":"jwt-go"}],"references":[{"url":"https://github.com/dgrijalva/jwt-go/pull/426","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://snyk.io/vuln/SNYK-GOLANG-GITHUBCOMDGRIJALVAJWTGO-596515","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web","article","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-26160","tags":["web","advisory"]},{"url":"https://github.com/dgrijalva/jwt-go/issues/422","tags":["web"]},{"url":"https://github.com/dgrijalva/jwt-go/issues/462","tags":["web"]},{"url":"https://github.com/dgrijalva/jwt-go/commit/ec0a89a131e3e8567adcb21254a5cd20a70ea4ab","tags":["web","fix"]},{"url":"https://pkg.go.dev/vuln/GO-2020-0017","tags":["web"]},{"url":"https://github.com/advisories/GHSA-w73w-5m7g-f7qc"},{"url":"https://security.alpinelinux.org/vuln/CVE-2020-26160","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2020-26160","tags":["advisory"]},{"url":"https://github.com/dgrijalva/jwt-go","tags":["package"]},{"url":"https://access.redhat.com/errata/RHSA-2021:2042","tags":["advisory"]},{"url":"https://access.redhat.com/security/updates/classification/#moderate","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1883371","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1897635","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1941502","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2021/rhsa-2021_2042.json","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-26160","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-26160","tags":["advisory","report"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-28362","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-28362","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-28362","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2020-26160","tags":["report"]},{"url":"https://github.com/golang-jwt/jwt/pull/12","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2020-26160","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2020-26160","description":"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.","status":"published","published":"2020-09-30T12:57:10Z","modified":"2024-08-04T15:49:07.136Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AC:L/AV:N/A:N/C:H/I:N/PR:N/S:U/UI:N","level":"high","assessor":"cna"}],"updated_at":"2026-11-02T14:35:45.763329Z"}],"euvd":[{"id":"EUVD-2021-1212","description":"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.","status":"published","published":"2020-09-30T12:57:10Z","modified":"2024-08-04T15:49:07Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AC:L/AV:N/A:N/C:H/I:N/PR:N/S:U/UI:N","level":"high"}],"updated_at":"2026-11-03T03:07:15.778249Z"}],"ghsa":[{"id":"GHSA-w73w-5m7g-f7qc","title":"Authorization bypass in github.com/dgrijalva/jwt-go","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](https://github.com/golang-jwt/jwt) at version 3.2.1","status":"published","published":"2021-05-18T21:08:21Z","modified":"2024-05-20T19:26:27Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-287","CWE-755"],"updated_at":"2026-11-02T14:37:50.750599Z"}],"nvd":[{"id":"CVE-2020-26160","description":"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.","status":"published","published":"2020-09-30T18:15:27.397Z","modified":"2026-06-17T03:07:43.907Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:P/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-287","CWE-755"],"updated_at":"2026-11-02T14:06:17.70091Z"}],"osv":[{"id":"ALPINE-CVE-2020-26160","description":"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.","status":"published","published":"2020-09-30T18:15:27.397Z","modified":"2026-11-03T06:32:24.916210877Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-03T07:17:57.723967Z"},{"id":"AZL-41684","title":"CVE-2020-26160 affecting package dcos-cli for versions less than 1.2.0-15","description":"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.","status":"published","published":"2020-09-30T18:15:27Z","modified":"2026-11-05T05:40:51Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-05T16:41:19.893001Z"},{"id":"CVE-2020-26160","description":"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.","status":"published","published":"2020-09-30T18:15:27.397Z","modified":"2026-11-10T02:30:21.668567545Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-10T02:46:04.118339Z"},{"id":"DEBIAN-CVE-2020-26160","description":"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.","status":"published","published":"2020-09-30T18:15:27.397Z","modified":"2026-10-26T12:01:58.134327795Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T15:45:33.729655Z"},{"id":"GHSA-w73w-5m7g-f7qc","title":"Authorization bypass in github.com/dgrijalva/jwt-go","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](https://github.com/golang-jwt/jwt) at version 3.2.1","status":"published","published":"2021-05-18T21:08:21Z","modified":"2026-09-10T03:49:05.293395113Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-287","CWE-755"],"updated_at":"2026-11-02T15:46:58.401149Z"},{"id":"RHSA-2021:2042","title":"Red Hat Security Advisory: Red Hat OpenShift Container Storage 4.7 RPM security, bug fix, and enhancement update","status":"published","published":"2024-09-30T13:55:21Z","modified":"2026-10-17T10:01:25Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:08.071325Z"},{"id":"UBUNTU-CVE-2020-26160","description":"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.","status":"published","published":"2020-09-30T18:15:00Z","modified":"2026-10-17T12:55:44.968796524Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T15:54:23.905183Z"},{"id":"GO-2020-0017","title":"Authorization bypass in github.com/dgrijalva/jwt-go","description":"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.","status":"published","published":"2021-04-14T20:04:52Z","modified":"2026-07-08T06:49:40.526819528Z","updated_at":"2026-11-02T15:47:00.604718Z"},{"id":"openSUSE-SU-2024:11428-1","title":"telegraf-1.19.0-1.2 on GA media","description":"These are all security issues fixed in the telegraf-1.19.0-1.2 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T02:14:25.797357Z","updated_at":"2026-11-02T16:58:35.195147Z"},{"id":"openSUSE-SU-2024:11668-1","title":"velero-plugin-for-microsoft-azure-1.3.1-1.1 on GA media","description":"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.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T03:52:02.635306Z","updated_at":"2026-11-02T16:58:35.195147Z"}]}}
