{"id":"OSEC-2026-15","summary":"EC public key out of bounds read","details":"The internal Point.of_octets function is missing a length check for compressed\npoints, and thus is raising an exception when a short buffer is provided. This\naffects all NIST curves (P-256, P-384, P-521) and both `Dsa.pub_of_octets` and\n`Dh.key_exchange` functions.\n\n## Fix\n\nThe fix is to check the length of the provided buffer.\n\n## Timeline\n\n- July 28th 2026: report to security@ocaml.org\n- August 7th: release of mirage-crypto-pk 2.3.0 and security advisory","modified":"2026-08-07T18:30:04.170823869Z","published":"2026-08-07T13:00:00Z","database_specific":{"cwe":["CWE-125","CWE-248"],"osv":"https://github.com/ocaml/security-advisories/tree/generated-osv/2026/OSEC-2026-15.json","human_link":"https://github.com/ocaml/security-advisories/tree/main/advisories/2026/OSEC-2026-15.md"},"affected":[{"package":{"name":"mirage-crypto-ec","ecosystem":"opam","purl":"pkg:opam/mirage-crypto-ec"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.0"}]},{"type":"GIT","repo":"https://github.com/mirage/mirage-crypto.git","events":[{"introduced":"0"},{"fixed":"1f0bf67044e67cf6e46911fcd77a0ff706b6c3e7"}]}],"versions":["0.9.0","0.9.1","0.9.2","0.10.0","0.10.1","0.10.2","0.10.3","0.10.4","0.10.5","0.10.6","0.10.7","0.11.0","0.11.1","0.11.2","0.11.3","1.0.0","1.1.0","1.2.0","2.0.0","2.0.1","2.0.2","2.0.3","2.1.0","2.2.0","v2.2.0","v2.1.0","v2.0.3","v2.0.2","v2.0.1","v2.0.0","v1.2.0","v1.1.0","v1.0.1","v1.0.0","v0.11.3","v0.11.2","v0.11.1","v0.11.0","v0.10.7","v0.10.6","v0.10.5","v0.10.4","v0.10.3","v0.10.2","v0.10.1","v0.10.0","v0.9.2","v0.9.1","v0.9.0","v0.8.10","v0.8.9","v0.8.8","v0.8.7","v0.8.6","v0.8.5","v0.8.4","v0.8.3","v0.8.2","v0.8.1","v0.8.0","v0.7.0","v0.6.2","v0.6.1","v0.6.0"],"ecosystem_specific":{"opam_constraint":"mirage-crypto-ec {\u003c \"2.3.0\"}","affected_bindings":["Mirage_crypto_ec.P256.Dsa.pub_of_octets","Mirage_crypto_ec.P256.Dh.key_exchange","Mirage_crypto_ec.P384.Dsa.pub_of_octets","Mirage_crypto_ec.P384.Dh.key_exchange","Mirage_crypto_ec.P521.Dsa.pub_of_octets","Mirage_crypto_ec.P521.Dh.key_exchange"]},"database_specific":{"source":"https://github.com/ocaml/security-advisories/blob/generated-osv/2026/OSEC-2026-15.json"}}],"schema_version":"1.8.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L"}],"credits":[{"name":"Thomas Gazagnaire","type":"REPORTER"},{"name":"Hannes Mehnert","type":"REMEDIATION_DEVELOPER"}]}