CVE-2026-87733

ECDSA Public Key Point at Infinity Forgery in Mirage‑Crypto‑EC Library

Published Sep 9, 2026 CVSS 3.1 · 6.2 Medium EPSS < 1% KEV · Not listed
Description
An issue was discovered in the mirage-crypto-ec function before 2.2.0 for OCaml. The ECDSA functions {P256,P384,P521}.Dsa.pub_of_octets accept 0x00, the encoding of the point at infinity, as a public key. With that public key, signatures can be forged without a private key.

Analysis

AI-generated

Technical impact

The mirage-crypto-ec library for OCaml allowed the function Dsa.pub_of_octets for the embedded ECDSA curves P256, P384, and P521 to accept the byte value 0x00, which represents the point at infinity, as a valid public key. Because this point is mathematically equivalent to null, it can be used to forge ECDSA signatures without having a private key, thereby violating the integrity guarantees of systems that rely on these signatures. This is an example of CWE‑295, Improper Certificate Validation, where an invalid key is accepted instead of being rejected. Based on the description, it is inferred that an attacker can craft a public key of 0x00 and use the library to produce signatures that will be accepted as valid by any downstream verification.

Affected Systems

OCaml mirage-crypto-ec library versions prior to 2.2.0 for the ECDSA curve implementations P256, P384, and P521 are impacted.

Risk and Exploitability

The CVSS score of 6.2 indicates a moderate impact. EPSS data is not available, so the exact likelihood of exploitation is uncertain; however, the vulnerability is not listed in the CISA KEV catalog. The likely attack vector is an application that accepts externally supplied ECDSA keys or processes untrusted data, as the flaw permits signature forgery when the crafted key is passed to Dsa.pub_of_octets. The attack requires the attacker to provide the specially crafted public key input, making it a targeted but feasible approach if key validation is absent.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to mirage-crypto-ec version 2.2.0 or later, which removes acceptance of the point at infinity and fixes the flaw.
  • Modify application code to explicitly reject or validate that public keys are not equal to the byte value 0x00, thereby addressing CWE‑295 and preventing forged signatures.
  • Audit the codebase for any remaining calls to mirage-crypto-ec’s Dsa.pub_of_octets and replace or wrap them in a hardened validation layer that enforces proper key format and rejects invalid inputs.

Generated by OpenCVE AI on September 9, 2026 at 11:59 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
References
History
Type Values Removed Values Added
First Time appeared Ocaml
Ocaml mirage-crypto-ec
Vendors & Products Ocaml
Ocaml mirage-crypto-ec
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Title ECDSA Public Key Point at Infinity Forgery in Mirage‑Crypto‑EC Library
Type Values Removed Values Added
Description An issue was discovered in the mirage-crypto-ec function before 2.2.0 for OCaml. The ECDSA functions {P256,P384,P521}.Dsa.pub_of_octets accept 0x00, the encoding of the point at infinity, as a public key. With that public key, signatures can be forged without a private key.
Weaknesses CWE-295
References
Metrics cvssV3_1

{'score': 6.2, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N'}

Weaknesses
  • CWE-295

    Improper Certificate Validation

Sources

Status
PUBLISHED
Assigner
mitre
Published
Updated
Sep 9, 2026, 1:02 PM
Reserved
Sep 9, 2026, 4:08 AM
Status
Deferred
Published
Sep 9, 2026, 5:18 AM
Modified
Sep 9, 2026, 4:04 PM