CVE-2026-72704: Always-Incorrect Control Flow Implementation in rocq-prover rocq
Description
The guard checker in Rocq Prover does not recheck the recursive tree representation of an inductive type parameter after that parameter has been changed by transport. A fixpoint may apply a rewrite along an equality between types to its recursive argument, which the guard checker accepts because the inductive type is preserved, while the recursive tree recorded for the parameter is altered. A second fixpoint that calls the first inherits the altered recursive tree without verification, so a call that is not structurally decreasing is accepted as terminating. The resulting non-terminating definition proves that a natural number equals its own successor and therefore False, from which any proposition follows. The demonstration uses two axioms that follow from univalence and are consistent with the calculus of inductive constructions, so the contradiction comes from the guard check rather than from the assumptions. A fix is proposed but not merged.
CVSS v4.0
Score 6.8medium
Affected software
rocq-prover
rocq
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The guard checker in Rocq Prover does not revalidate the recursive tree representation of an inductive type parameter after it is changed by transport. This allows a fixpoint to apply rewrites along equalities between types to its recursive argument, which the guard checker accepts because the inductive type appears preserved, even though the recursive tree is altered. Subsequent fixpoints inherit this altered recursive tree without verification, permitting non-structurally decreasing calls to be accepted as terminating. This results in a non-terminating definition that can prove a natural number equals its own successor and thus False, from which any proposition follows. The demonstration relies on two axioms consistent with the calculus of inductive constructions, indicating the contradiction arises from the guard check implementation rather than the underlying assumptions. A fix has been proposed but is not yet merged.
Potential Impact
The vulnerability allows the acceptance of non-terminating definitions in the Rocq Prover, which can lead to logical inconsistencies such as proving false statements. This undermines the soundness of proofs constructed using the tool, potentially invalidating any dependent formal verification or mathematical proofs.
Mitigation Recommendations
No official fix is currently merged or available. Users should monitor the vendor's repository or advisory channels for the proposed fix to be merged. Until then, caution is advised when relying on fixpoints involving inductive type parameters that may be affected by this issue.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-08-10T13:02:20.829Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6a8ca814acd9273b4915058e
Added to database: 08/24/2026, 20:22:44 UTC
Last enriched: 09/25/2026, 02:38:59 UTC
Last updated: 10/08/2026, 06:48:19 UTC
Views: 70
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.