CVE-2016-9121 json
Elliptic Curve Key Disclosure in go-jose
published 2017-03-28 9 y ago modified 2026-06-17 4 mo ago also GHSA-86r9-39j9-99wp , GO-2020-0010 , EUVD-2021-1289
- cvss
- 9.1
- version 3.0, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.4%
- EPSS 1.4% chance of exploitation in 30 days, percentile 72%
- public exploits
- 0
- none known
Summary
go-jose before 1.0.4 suffers from an invalid curve attack for the ECDH-ES algorithm. When deriving a shared key using ECDH-ES for an encrypted message, go-jose neglected to check that the received public key on a message is on the same curve as the static private key of the receiver, thus making it vulnerable to an invalid curve attack.
Patch / fix
- go gopkg.in/square/go-jose.v1 1.0.4
- go github.com/square/go-jose 1.0.4
- golang-gopkg-square-go-jose.v1 Debian 14, Debian 13, Debian 12 1.0.5-1
debian advisories DEBIAN-CVE-2016-9121
Exploit prediction
1.41% chance of exploitation in the next 30 days, higher than 72% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.0 | 9.1 | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
| NVD | 2.0 | 6.4 | AV:N/AC:L/Au:N/C:P/I:P/A:N |
| GitHub | 3.0 | 9.1 | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | gopkg.in/square/go-jose.v1 | <1.0.4 |
1.0.4 |
| go | github.com/square/go-jose | <1.0.4 |
1.0.4 |
Affected products
- n/a Go JOSE All versions before 1.0.4
Classification
- Weakness
-
- CWE-326 Inadequate Encryption Strength
References
-
github.com
/square/go-jose/commit/c7581939a3656bb65e89d64da0a52364a33d2507
web, issue-tracking, patch, third-party-advisory
-
openwall.com
/lists/oss-security/2016/11/03/1
mailing-list, patch, third-party-advisory
-
hackerone.com
/reports/164590
web, permissions-required
-
nvd.nist.gov
/vuln/detail/CVE-2016-9121
advisory
-
pkg.go.dev
/vuln/GO-2020-0010
web
-
openwall.com
/lists/oss-security/2016/11/03/1
web
Sources
- CVE List CVE-2016-9121
- GitHub Advisory GHSA-86r9-39j9-99wp
- NVD CVE-2016-9121
- OSV GO-2020-0010
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.