OSEC-2026-17

See a problem?
Import Source
https://github.com/ocaml/security-advisories/blob/generated-osv/2026/OSEC-2026-17.json
JSON Data
https://api.osv.dev/v1/vulns/OSEC-2026-17
Aliases
  • CVE-2026-87737
Published
2026-08-17T09:45:00Z
Modified
2026-09-10T10:15:04Z
Severity
  • 5.9 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N CVSS Calculator
Summary
Timing leak in NIST elliptic curves scalar multiplication
Details

The scalar multiplication includes pre-computed tables for speedup (introduced in mirage-crypto-ec 0.11.3). The lookup algorithm for these tables performs secret-dependent reads instead of scanning the entire table.

Solution

Instead of using the index n - 1, where n is secret-dependent, use i - 1, as done in the Go reference implementation. If n is 0, there is a out-of-bounds read before the patch.

Timeline

  • 2026-08-12: report by Eric Ebinger to security@ocaml.org
  • 2026-08-17: release of mirage-crypto-ec 2.4.0 and this advisory
Database specific
{
    "cwe": [
        "CWE-208"
    ],
    "human_link": "https://github.com/ocaml/security-advisories/tree/main/advisories/2026/OSEC-2026-17.md",
    "osv": "https://github.com/ocaml/security-advisories/tree/generated-osv/2026/OSEC-2026-17.json"
}
Credits
    • Eric Ebinger - REPORTER
    • Hannes Mehnert - COORDINATOR
    • Virgile Robles - REMEDIATION_REVIEWER
    • Eric Ebinger - REMEDIATION_DEVELOPER

Affected packages

opam / mirage-crypto-ec

Package

Name
mirage-crypto-ec
Purl
pkg:opam/mirage-crypto-ec

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0.11.3
Fixed
2.4.0
Type
GIT
Repo
https://github.com/mirage/mirage-crypto
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed

Affected versions

0.*
0.11.3
1.*
1.0.0
1.1.0
1.2.0
2.*
2.0.0
2.0.1
2.0.2
2.0.3
2.1.0
2.2.0
2.3.0
v0.*
v0.6.0
v0.6.1
v0.6.2
v0.7.0
v0.8.0
v0.8.1
v0.8.2
v0.8.3
v0.8.4
v0.8.5
v0.8.6
v0.8.7
v0.8.8
v0.8.9
v0.8.10
v0.9.0
v0.9.1
v0.9.2
v0.10.0
v0.10.1
v0.10.2
v0.10.3
v0.10.4
v0.10.5
v0.10.6
v0.10.7
v0.11.0
v0.11.1
v0.11.2
v0.11.3
v1.*
v1.0.0
v1.0.1
v1.1.0
v1.2.0
v2.*
v2.0.0
v2.0.1
v2.0.2
v2.0.3
v2.1.0
v2.2.0
v2.3.0

Ecosystem specific

{
    "affected_bindings": [
        "Mirage_crypto_ec.P256.Dh.share",
        "Mirage_crypto_ec.P256.Dsa.generate",
        "Mirage_crypto_ec.P256.Dsa.sign",
        "Mirage_crypto_ec.P256.Dsa.pub_of_priv",
        "Mirage_crypto_ec.P384.Dh.share",
        "Mirage_crypto_ec.P384.Dsa.generate",
        "Mirage_crypto_ec.P384.Dsa.sign",
        "Mirage_crypto_ec.P384.Dsa.pub_of_priv",
        "Mirage_crypto_ec.P521.Dh.share",
        "Mirage_crypto_ec.P521.Dsa.generate",
        "Mirage_crypto_ec.P521.Dsa.sign",
        "Mirage_crypto_ec.P521.Dsa.pub_of_priv"
    ],
    "opam_constraint": "mirage-crypto-ec {>= \"0.11.3\" & < \"2.4.0\"}"
}

Database specific

source
"https://github.com/ocaml/security-advisories/blob/generated-osv/2026/OSEC-2026-17.json"