{"id":"CVE-2016-9122","aliases":["DEBIAN-CVE-2016-9122","EUVD-2021-0989","GHSA-77gc-fj98-665h","GO-2022-0945"],"status":"published","title":"Go JOSE Signature Validation Bypass","description":"go-jose before 1.0.4 suffers from multiple signatures exploitation. The go-jose library supports messages with multiple signatures. However, when validating a signed message the API did not indicate which signature was valid, which could potentially lead to confusion. For example, users of the library might mistakenly read protected header values from an attached signature that was different from the one originally validated.","severity":{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.01969,"percentile":0.80534,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-284"],"published":"2017-03-28T02:46:00Z","modified":"2026-10-24T10:47:34Z","fixes":[{"ecosystem":"Go","package":"gopkg.in/square/go-jose.v1","fixed_in":["1.1.0"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"golang-gopkg-square-go-jose.v1","fixed_in":["1.0.5-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"golang-gopkg-square-go-jose.v1","fixed_in":["1.0.5-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"golang-gopkg-square-go-jose.v1","fixed_in":["1.0.5-1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"Go","package":"gopkg.in/square/go-jose.v1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.1.0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"golang-gopkg-square-go-jose.v1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.0.5-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"golang-gopkg-square-go-jose.v1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.0.5-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"golang-gopkg-square-go-jose.v1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.0.5-1"}]}]},{"source":"osv","ecosystem":"Go","package":"gopkg.in/square/go-jose.v1","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.1.0"}]}]},{"source":"osv","ecosystem":"Go","package":"gopkg.in/square/go-jose.v1","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.1.0"}]}]}],"products":[{"vendor":"go-jose_project","product":"go-jose"}],"references":[{"url":"https://hackerone.com/reports/169629","tags":["x_refsource_MISC","x_transferred","Permissions Required","report","web"]},{"url":"https://github.com/square/go-jose/commit/2c5656adca9909843c4ff50acf1d2cf8f32da7e6","tags":["x_refsource_MISC","x_transferred","Issue Tracking","Patch","Third Party Advisory","fix","web"]},{"url":"http://www.openwall.com/lists/oss-security/2016/11/03/1","tags":["x_refsource_MISC","x_transferred","Mailing List","Patch","Third Party Advisory","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2016-9122","tags":["advisory"]},{"url":"https://github.com/square/go-jose/pull/111","tags":["web","fix"]},{"url":"https://github.com/square/go-jose/commit/789a4c4bd4c118f7564954f441b29c153ccd6a96","tags":["web"]},{"url":"https://github.com/square/go-jose/commit/c7581939a3656bb65e89d64da0a52364a33d2507","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2016/11/03/1","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-77gc-fj98-665h"},{"url":"https://security-tracker.debian.org/tracker/CVE-2016-9122","tags":["advisory"]},{"url":"https://github.com/square/go-jose","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2016-9122","description":"go-jose before 1.0.4 suffers from multiple signatures exploitation. The go-jose library supports messages with multiple signatures. However, when validating a signed message the API did not indicate which signature was valid, which could potentially lead to confusion. For example, users of the library might mistakenly read protected header values from an attached signature that was different from the one originally validated.","status":"published","published":"2017-03-28T02:46:00Z","modified":"2024-08-06T02:42:10.637Z","updated_at":"2026-11-02T14:33:32.103757Z"}],"euvd":[{"id":"EUVD-2021-0989","description":"go-jose before 1.0.4 suffers from multiple signatures exploitation. The go-jose library supports messages with multiple signatures. However, when validating a signed message the API did not indicate which signature was valid, which could potentially lead to confusion. For example, users of the library might mistakenly read protected header values from an attached signature that was different from the one originally validated.","status":"published","published":"2017-03-28T02:46:00Z","modified":"2024-08-06T02:42:10Z","updated_at":"2026-11-03T02:22:28.196866Z"}],"ghsa":[{"id":"GHSA-77gc-fj98-665h","title":"Go JOSE Signature Validation Bypass","description":"Go JOSE before 1.1.0 suffers from multiple signatures exploitation. The go-jose library supports messages with multiple signatures. However, when validating a signed message the API did not indicate which signature was valid, which could potentially lead to confusion. For example, users of the library might mistakenly read protected header values from an attached signature that was different from the one originally validated","status":"published","published":"2021-05-18T19:15:09Z","modified":"2024-05-20T21:20:37Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"cwes":["CWE-284"],"updated_at":"2026-11-02T14:37:50.750599Z"}],"nvd":[{"id":"CVE-2016-9122","description":"go-jose before 1.0.4 suffers from multiple signatures exploitation. The go-jose library supports messages with multiple signatures. However, when validating a signed message the API did not indicate which signature was valid, which could potentially lead to confusion. For example, users of the library might mistakenly read protected header values from an attached signature that was different from the one originally validated.","status":"published","published":"2017-03-28T02:59:00.26Z","modified":"2026-06-17T00:55:33.317Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:N/I:P/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-284"],"updated_at":"2026-11-02T14:03:37.238712Z"}],"osv":[{"id":"CVE-2016-9122","description":"go-jose before 1.0.4 suffers from multiple signatures exploitation. The go-jose library supports messages with multiple signatures. However, when validating a signed message the API did not indicate which signature was valid, which could potentially lead to confusion. For example, users of the library might mistakenly read protected header values from an attached signature that was different from the one originally validated.","status":"published","published":"2017-03-28T02:59:00.26Z","modified":"2026-10-24T10:47:34.562935632Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:44:03.171316Z"},{"id":"DEBIAN-CVE-2016-9122","description":"go-jose before 1.0.4 suffers from multiple signatures exploitation. The go-jose library supports messages with multiple signatures. However, when validating a signed message the API did not indicate which signature was valid, which could potentially lead to confusion. For example, users of the library might mistakenly read protected header values from an attached signature that was different from the one originally validated.","status":"published","published":"2017-03-28T02:59:00.26Z","modified":"2026-09-22T07:03:13.324214518Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:45:28.207321Z"},{"id":"GHSA-77gc-fj98-665h","title":"Go JOSE Signature Validation Bypass","description":"Go JOSE before 1.1.0 suffers from multiple signatures exploitation. The go-jose library supports messages with multiple signatures. However, when validating a signed message the API did not indicate which signature was valid, which could potentially lead to confusion. For example, users of the library might mistakenly read protected header values from an attached signature that was different from the one originally validated","status":"published","published":"2021-05-18T19:15:09Z","modified":"2024-05-20T21:20:33Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"cwes":["CWE-284"],"updated_at":"2026-11-02T15:46:40.657155Z"},{"id":"GO-2022-0945","title":"Signature validation bypass in gopkg.in/square/go-jose.v1","description":"The go-jose library suffers from multiple signatures exploitation. When validating a signed message, the API did not indicate which signature was valid, which creates the potential for confusion.","status":"published","published":"2022-08-22T17:59:45Z","modified":"2024-05-20T16:03:47Z","updated_at":"2026-11-02T15:47:00.918515Z"}]}}
