Miggo Logo

CVE-2016-9121: Elliptic Curve Key Disclosure in go-jose

9.1

CVSS Score
3.0

Basic Information

EPSS Score
0.65621%
Published
6/23/2021
Updated
2/16/2023
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
gopkg.in/square/go-jose.v1go< 1.0.41.0.4
github.com/square/go-josego< 1.0.41.0.4

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from missing curve validation in three key areas: 1) cipher.DeriveECDHES handled key derivation without curve checks (patched by adding IsOnCurve validation). 2) decryptKey in asymmetric.go processed messages with foreign curve keys (patched with curve check). 3) JWK unmarshaling in jwk.go accepted invalid EC points (patched with IsOnCurve check). The commit diff shows these functions were modified to add curve validation, and the Go vulnerability report (GO-2020-0010) explicitly lists these affected symbols.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

*o-jos* ***or* *.*.* su***rs *rom *n inv*li* *urv* *tt**k *or t** ****-*S *l*orit*m. W**n **rivin* * s**r** k*y usin* ****-*S *or *n *n*rypt** m*ss***, *o-jos* n**l**t** to ****k t**t t** r***iv** pu*li* k*y on * m*ss*** is on t** s*m* *urv* *s t** s

Reasoning

T** vuln*r**ility st*ms *rom missin* *urv* `v*li**tion` in t*r** k*y *r**s: *) `*ip**r.**riv******S` **n*l** k*y **riv*tion wit*out *urv* ****ks (p*t**** *y ***in* `IsOn*urv*` `v*li**tion`). *) `***ryptK*y` in `*symm*tri*.*o` pro**ss** m*ss***s wit*