<?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://db.gcve.eu</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>Sun, 08 Nov 2026 17:37:08 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-72705</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-72705</link>
      <description>&lt;p&gt;The guard checker in Rocq Prover does not follow recursive calls made through a fixpoint&amp;#39;s own arguments. A fixpoint may pass itself as a higher-order argument to a second fixpoint, which then applies it to a value that is not a subterm of the structural argument. Passing the recursive function to a plain definition is rejected because the checker unfolds the definition and observes the call, but passing it to a fixpoint is accepted because higher-order recursive calls through fixpoint arguments are not tracked. This admits a type that is definitionally equal to its own negation, so self-application produces False in purely definitional code, without tactics, axioms, plugins or unsafe flags, and Print Assumptions reports the result as closed under the global context. Fixed in Rocq 9.2.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;The guard checker in Rocq Prover does not follow recursive calls made through a fixpoint&amp;#39;s own arguments. A fixpoint may pass itself as a higher-order argument to a second fixpoint, which then applies it to a value that is not a subterm of the structural argument. Passing the recursive function to a plain definition is rejected because the checker unfolds the definition and observes the call, but passing it to a fixpoint is accepted because higher-order recursive calls through fixpoint arguments are not tracked. This admits a type that is definitionally equal to its own negation, so self-application produces False in purely definitional code, without tactics, axioms, plugins or unsafe flags, and Print Assumptions reports the result as closed under the global context. Fixed in Rocq 9.2.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-72705</guid>
    </item>
    <item>
      <title>GCVE-1988-2026-0445 — [Bugtraq] CVE-2026-72705: Rocq guard checker accepts fixpoint passed as higher-order argument (0 = 1 demonstrated)</title>
      <link>https://db.gcve.eu/vuln/gcve-1988-2026-0445</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; rocq-prover rocq&lt;/p&gt;
&lt;p&gt;1. Summary
==========
A soundness bug in the Rocq (formerly Coq) kernel&amp;#39;s guard checker allows
construction of a checked proof of False — and by extension, any
proposition, including 0 = 1 — without axioms, tactics, plugins, or
unsafe flags. Print Assumptions reports the proof as closed under the
global context.
The guard checker does not track recursive calls made through a
fixpoint&amp;#39;s own arguments. A fixpoint can pass itself to another
fixpoint, which can apply it to a value that is not a structural
subterm. Passing the function to a plain definition is correctly
rejected, but passing it to a fixpoint is accepted. This admits a type
that is definitionally equal to its own negation, and self-application
yields False in purely definitional code.
2. Context
==========
Rocq (formerly Coq) is the reference implementation of the Calculus of
Inductive Constructions and one of the most widely deployed proof
assistants. Its kernel is the trusted core that checks every proof
before acceptance. A soundness bug in the guard checker — the component
that enforces termination of recursive definitions — undermines the
guarantees of any system built on Rocq-checked proofs.
Formally verified systems certified under Common Criteria (ISO 15408) or
DO-178C (airborne software) derive their assurance from the correctness
of the proof checker. A kernel-level bypass invalidates that assurance
chain.
This bug was discovered by Claude Opus 4.6 (Anthropic) during a
fuzzing campaign.
3. Impact
=======…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; rocq-prover rocq&lt;/p&gt;
&lt;p&gt;1. Summary
==========
A soundness bug in the Rocq (formerly Coq) kernel&amp;#39;s guard checker allows
construction of a checked proof of False — and by extension, any
proposition, including 0 = 1 — without axioms, tactics, plugins, or
unsafe flags. Print Assumptions reports the proof as closed under the
global context.
The guard checker does not track recursive calls made through a
fixpoint&amp;#39;s own arguments. A fixpoint can pass itself to another
fixpoint, which can apply it to a value that is not a structural
subterm. Passing the function to a plain definition is correctly
rejected, but passing it to a fixpoint is accepted. This admits a type
that is definitionally equal to its own negation, and self-application
yields False in purely definitional code.
2. Context
==========
Rocq (formerly Coq) is the reference implementation of the Calculus of
Inductive Constructions and one of the most widely deployed proof
assistants. Its kernel is the trusted core that checks every proof
before acceptance. A soundness bug in the guard checker — the component
that enforces termination of recursive definitions — undermines the
guarantees of any system built on Rocq-checked proofs.
Formally verified systems certified under Common Criteria (ISO 15408) or
DO-178C (airborne software) derive their assurance from the correctness
of the proof checker. A kernel-level bypass invalidates that assurance
chain.
This bug was discovered by Claude Opus 4.6 (Anthropic) during a
fuzzing campaign.
3. Impact
=======…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/gcve-1988-2026-0445</guid>
    </item>
    <item>
      <title>GHSA-f4rc-7978-q94g</title>
      <link>https://db.gcve.eu/vuln/ghsa-f4rc-7978-q94g</link>
      <description>&lt;p&gt;The guard checker in Rocq Prover does not follow recursive calls made through a fixpoint&amp;#39;s own arguments. A fixpoint may pass itself as a higher-order argument to a second fixpoint, which then applies it to a value that is not a subterm of the structural argument. Passing the recursive function to a plain definition is rejected because the checker unfolds the definition and observes the call, but passing it to a fixpoint is accepted because higher-order recursive calls through fixpoint arguments are not tracked. This admits a type that is definitionally equal to its own negation, so self-application produces False in purely definitional code, without tactics, axioms, plugins or unsafe flags, and Print Assumptions reports the result as closed under the global context. Fixed in Rocq 9.2.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;The guard checker in Rocq Prover does not follow recursive calls made through a fixpoint&amp;#39;s own arguments. A fixpoint may pass itself as a higher-order argument to a second fixpoint, which then applies it to a value that is not a subterm of the structural argument. Passing the recursive function to a plain definition is rejected because the checker unfolds the definition and observes the call, but passing it to a fixpoint is accepted because higher-order recursive calls through fixpoint arguments are not tracked. This admits a type that is definitionally equal to its own negation, so self-application produces False in purely definitional code, without tactics, axioms, plugins or unsafe flags, and Print Assumptions reports the result as closed under the global context. Fixed in Rocq 9.2.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-f4rc-7978-q94g</guid>
    </item>
  </channel>
</rss>
