CVE-2016-9122 json
Go JOSE Signature Validation Bypass
published 2017-03-28 9 y ago modified 2026-06-17 4 mo ago also GHSA-77gc-fj98-665h , GO-2022-0945 , EUVD-2021-0989
- cvss
- 7.5
- version 3.0, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 2.0%
- EPSS 2.0% chance of exploitation in 30 days, percentile 80%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- go gopkg.in/square/go-jose.v1 1.1.0
- golang-gopkg-square-go-jose.v1 Debian 14, Debian 13, Debian 12 1.0.5-1
debian advisories DEBIAN-CVE-2016-9122
- github.com/square/go-jose@2c5656a commit
- github.com/square/go-jose@789a4c4 commit
- github.com/square/go-jose@c758193 commit
- github.com/square/go-jose#111 pull request
- openwall.com/lists/oss-security/2016/11/03/1 advisory
Exploit prediction
1.97% chance of exploitation in the next 30 days, higher than 80% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.0 | 7.5 | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| NVD | 2.0 | 5.0 | AV:N/AC:L/Au:N/C:N/I:P/A:N |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | gopkg.in/square/go-jose.v1 | <1.1.0 |
1.1.0 |
Affected products
- n/a Go JOSE All versions before 1.0.4
Classification
- Weakness
-
- CWE-284 Improper Access Control
References
-
github.com
/square/go-jose/commit/2c5656adca9909843c4ff50acf1d2cf8f32da7e6
web, issue-tracking, patch, third-party-advisory
-
openwall.com
/lists/oss-security/2016/11/03/1
web, mailing-list, patch, third-party-advisory
-
github.com
/square/go-jose/pull/111
web, patch
-
github.com
/square/go-jose/commit/789a4c4bd4c118f7564954f441b29c153ccd6a96
web
-
github.com
/square/go-jose/commit/c7581939a3656bb65e89d64da0a52364a33d2507
web
-
hackerone.com
/reports/169629
web, permissions-required
-
nvd.nist.gov
/vuln/detail/CVE-2016-9122
advisory
-
github.com
/square/go-jose
package
-
openwall.com
/lists/oss-security/2016/11/03/1
web, advisory
Sources
- CVE List CVE-2016-9122
- GitHub Advisory GHSA-77gc-fj98-665h
- NVD CVE-2016-9122
- OSV GO-2022-0945
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.