Junglewise Threat Intelligence

CVE-2017-16007: Cisco node-jose invalid curve attack in ECDH-ES

CVE-2017-16007 · Severity: low · CVSS 3 · Published 2018-07-20

Technologies: node-jose (npm). Vendors: npm, Cisco.

Executive brief

node-jose is a JavaScript library used for JSON Web Encryption (JWE) operations in web applications and APIs. An invalid curve attack in the ECDH-ES key agreement algorithm allows an attacker to recover the private secret key used to decrypt sensitive data, potentially exposing encrypted communications and authentication credentials.

Technical details

The vulnerability is a cryptographic attack in the ECDH-ES (Elliptic Curve Diffie-Hellman Ephemeral Static) key agreement implementation. The library failed to validate that received elliptic curve public keys were on the configured curve, allowing an attacker to supply a specially crafted public key from an invalid curve and recover the private key through mathematical analysis. This affects all versions prior to 0.9.3, which introduced proper public key validation. The attack is network-accessible and requires no authentication or user interaction, but involves non-trivial cryptographic manipulation (AC:H indicates high complexity).

Affected products

  • Cisco node-jose before 0.9.3

Timeline

  • 2017-03: disclosed: Vulnerability details published by researcher
  • 2017-02-15: patched: Fix merged validating EC public key is on configured curve
  • 2018-07-20: advisory

References

Related threats