CVE-2016-9121
CriticalSummary
The go-jose library before version 1.0.4 is vulnerable to an invalid curve attack in the ECDH-ES algorithm. When deriving a shared key, go-jose fails to check that the received public key is on the same curve as the receiver's static private key.
Risk Assessment
An attacker could exploit this vulnerability to capture the encryption key, leading to the decryption of sensitive data. This poses a significant threat to the security of communications within the organization.
Recommendation
It is recommended to update the go-jose library to version 1.0.4 or later to mitigate this attack. Additionally, implementing curve verification mechanisms in the used ECDH algorithms is advisable.
Other vulnerabilities in go-jose
See all- CVE-2016-9123High
The go-jose library before version 1.0.5 suffers from a CBC-HMAC integer overflow on 32-bit architectures. An integer overflow could lead to authentication bypass for CBC-HMAC encrypted ciphertexts on these architectures.
- CVE-2026-34986High
Go JOSE prior to versions 4.1.4 and 3.0.5 has a vulnerability where decrypting a JWE object can panic if the alg field indicates a key wrapping algorithm (ending in KW, except A128GCMKW, A192GCMKW, A256GCMKW) and the encrypted_key field is empty. The panic occurs when attempting to allocate a slice with zero or negative length. This can lead to denial of service.
Original NVD description (English source)
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.

