Skip to main content

mirage-crypto-ec EUVDEUVD-2026-74619

| CVE-2026-87733 MEDIUM
Improper Certificate Validation (CWE-295)
2026-09-09 mitre GHSA-5v5p-5xxr-9xf8
6.2
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify service using mirage-crypto-ec <2.2.0
  2. Delivery
    Submit 0x00-encoded point-at-infinity as EC public key
  3. Exploit
    Library accepts degenerate key via pub_of_octets
  4. Execution
    Craft ECDSA signature trivially satisfying verification
  5. Impact
    Forge authenticated assertion or bypass signature check

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
Exploitation Conditions

Exploitation requires (1) the target application links against mirage-crypto-ec before version 2.2.0, and (2) an attacker can supply or influence the EC public key passed to pub_of_octets - for example, through externally-provided public key material in a TLS certificate, JWT header, cryptographic protocol message, or API input. Applications that use only hardcoded or pre-validated public keys from trusted internal sources are not exploitable in practice. The official CVSS assigns AV:L, but realistic exposure extends to network contexts whenever externally-supplied public keys are accepted. There is no authentication, interaction, or privilege requirement on the attacker's side once they control the public key input.

Impact

The official CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N, score 6.2) assigns a local attack vector, which likely reflects a conservative, application-agnostic assessment. In practice, if mirage-crypto-ec is used in network-facing protocols that accept externally-supplied public keys - such as TLS certificate validation, JWT verification, or custom cryptographic handshakes common in the MirageOS ecosystem - the effective attack vector is network-reachable, making the 6.2 score a potential understatement of exposure. EPSS data was not provided in the input. No KEV listing and no confirmed public exploit exist at time of analysis, but the cryptographic attack is well-understood and requires no special tooling. Applications that use only internally-stored, pre-validated public keys from trusted sources are not practically exploitable. The primary risk is to authentication and non-repudiation guarantees in any system using this library for ECDSA verification.

Exploit ScenarioDerived

An attacker targeting a MirageOS-based service that performs ECDSA signature verification sends the single byte 0x00 as the EC public key in a protocol handshake or authentication token. The library's pub_of_octets accepts this as a valid P256/P384/P521 key, and the attacker then constructs an ECDSA signature that passes verification against this degenerate key. The attacker successfully authenticates or forges a signed message without possessing any private key, bypassing all cryptographic guarantees the application relies on. No public exploit has been identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 09, 2026

ECDSA signature forgery is possible in mirage-crypto-ec before 2.2.0 for OCaml because the P256, P384, and P521 pub_of_octets functions accept 0x00 - the encoding of the elliptic curve point at infinity - as a valid public key. Any application relying on this library to verify ECDSA signatures against externally-supplied public keys can be deceived into accepting signatures crafted without knowledge of any private key. No public exploit has been identified at time of analysis, but the attack is conceptually elementary for anyone familiar with elliptic curve arithmetic.

RemediationAI

Upgrade mirage-crypto-ec to version 2.2.0 or later, which introduces proper rejection of the point at infinity in pub_of_octets for all three affected curves (P256, P384, P521). The patch is confirmed available per the OSV advisory at https://osv.dev/vulnerability/OSEC-2026-13. If an immediate upgrade is not feasible, applications should add explicit pre-validation of any external octet-string public key to reject inputs encoding the point at infinity (0x00 or the curve-specific all-zero encoding) before passing them to pub_of_octets. Additionally, restricting the source of public keys to pre-vetted, internally-stored material eliminates the attack surface entirely, at the cost of removing support for externally-supplied keys.

Affected VersionsENISA

mirage-crypto-ec 0 <2.2.0

Affected Packages

euvd mirage_crypto_ec fix: 2.2.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

mirage-crypto-ec is an OCaml library providing elliptic curve cryptography for the MirageOS unikernel ecosystem and general OCaml applications. The affected entry points are {P256,P384,P521}.Dsa.pub_of_octets, which parse octet-string representations of EC public keys. In elliptic curve group theory, the point at infinity is the additive identity element and is mathematically invalid as a public key - compliant implementations are required to reject it during key import. The library failed to enforce this check, allowing the single-byte encoding 0x00 to be stored as an accepted public key. Because ECDSA verification using the point at infinity reduces to an identity-element computation, an attacker can construct signatures that satisfy verification regardless of message content. CPE cpe:2.3:a:ocaml:mirage-crypto-ec:*:*:*:*:*:*:*:* covers all versions prior to 2.2.0. CWE-295 (Improper Certificate Validation) is a partial fit; CWE-347 (Improper Verification of Cryptographic Signature) or CWE-20 (Improper Input Validation on the key import path) is a technically closer characterization of the missing point validation check.

Know when Ocaml gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (mitre) PRIMARY 6.2 MEDIUM
AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
vuln.today AI 7.5 HIGH

Library used in network protocols accepting external EC keys; no complexity, privilege, or interaction required once attacker controls the key input.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

Lifecycle Timeline

1
Patch available
Sep 09, 2026 - 05:18 EUVD

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Rare
niche OCaml/MirageOS library, limited production footprint
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

31
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +31
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Ocaml

View all
CVE-2017-9772 CRITICAL
9.8 Jun 23

Insufficient sanitisation in the OCaml compiler versions 4.04.0 and 4.04.1 allows external code to be executed with rais

CVE-2015-8869 CRITICAL
9.1 Jun 13

OCaml before 4.03.0 does not properly handle sign extensions, which allows remote attackers to conduct buffer overflow a

CVE-2018-9838 CRITICAL
9.8 Apr 06

The caml_ba_deserialize function in byterun/bigarray.c in the standard library in OCaml 4.06.0 has an integer overflow w

CVE-2026-89086 CRITICAL
9.1 Sep 10

Signature verification bypass in the OCaml jose library (ulrikstrid/ocaml-jose) before 0.11.0 lets attackers forge valid

CVE-2017-9779 HIGH
7.8 Sep 07

OCaml compiler allows attackers to have unspecified impact via unknown vectors, a similar issue to CVE-2017-9772 "but wi

CVE-2026-28364 HIGH
7.8 Feb 27

Heap memory corruption in the OCaml runtime (before 4.14.3 and 5.x before 5.4.1) lets an attacker who can feed crafted M

CVE-2026-41082 HIGH
7.8 Apr 16

Arbitrary file write in OCaml opam before 2.5.1 allows a malicious package to escape its intended installation scope: a

CVE-2026-87734 HIGH
7.5 Sep 09

Remote denial of service in the utcp OCaml TCP userspace library before version 0.0.6 is possible via crafted out-of-ord

CVE-2026-89087 HIGH
7.3 Sep 10

Index mishandling in the OCaml cstruct library before 6.3.0 allows network-reachable attackers to trigger partial confid

CVE-2026-96609 HIGH
7.1 Sep 23

Denial of service in Robur Albatross (specifically the albatross-console component) versions 1.0.0 through 2.x before 2.

CVE-2026-87732 MEDIUM
6.2 Sep 09

Authenticated decryption in mirage-crypto before 2.2.0 for OCaml violates the security invariant of AEAD schemes by writ

CVE-2026-87737 MEDIUM
5.9 Sep 09

Timing side-channel in mirage-crypto-ec before 2.4.0 for OCaml enables remote cryptographic key recovery by exploiting s

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy