Junglewise Threat Intelligence

CVE-2026-87733: Mirage-crypto-ec ECDSA signature forgery via point at infinity

CVE-2026-87733 · Severity: medium · CVSS 6.2 · Published 2026-09-09

Technologies: OCaml Mirage-Crypto-Ec. Vendors: OCaml.

Executive brief

Mirage-crypto-ec is an OCaml library providing elliptic curve cryptography functions, including ECDSA digital signature verification. A flaw allows attackers to forge ECDSA signatures without possessing the private key by exploiting acceptance of the point at infinity (encoded as 0x00) as a valid public key. This undermines the authenticity guarantees of any system relying on this library for signature verification, potentially allowing unauthorized transactions, data tampering, or identity spoofing.

Technical details

The vulnerability is a missing cryptographic validation in the ECDSA path of mirage-crypto-ec's pub_of_octets function for P256, P384, and P521 curves. The function fails to reject 0x00 (the SEC1 encoding of the elliptic curve point at infinity), accepting it as a legitimate public key. An attacker can then forge arbitrary ECDSA signatures for any message under this crafted public key with no knowledge of a private key; the forged signature verification succeeds due to the mathematical properties of operations involving the point at infinity. The Diffie-Hellman code path correctly rejects this point via point_of_octets. Fix: Version 2.2.0 and later add a check to reject the point at infinity in pub_of_octets.

Affected products

  • OCaml mirage-crypto-ec before 2.2.0

Timeline

  • 2026-06-25: disclosed: Reported to ocaml/security-advisories
  • 2026-06-29: other: Issue acknowledged with clarifying questions
  • 2026-07-06: other: Patch provided by reporter
  • 2026-07-27: patched: mirage-crypto 2.2.0 released with fix
  • 2026-09-09: advisory: Public advisory published

Related threats