CVE-2026-72704
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.
Scoring
- Severity
- MEDIUM
- CVSS base score
- 6.8
- CVSS vector
- CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
- EPSS probability
- 0.12%
- CWE
- CWE-670
- Published
- 2026-08-24
- Last modified
- 2026-08-29
Affected products
- rocq-prover rocq
Weakness type
Related vulnerabilities
- CVE-2026-55624 — MintyItanium Lost-Auction takes items like barrier blocks out from search GUI
- CVE-2026-72705 — Rocq Prover before 9.2.0 Guard Checker Accepts Fixpoint Passed as a Higher-Order Argument
- CVE-2026-72703 — Rocq Prover 8.20 before 9.2.0 Guard Checker Accepts Non-Terminating Fixpoint via Unchecked Cross-Calls
- CVE-2026-19487 — Perl versions from 5.9.4 before 5.41.9 produce incorrect regular expression match results when a stale failure flag ends the Aho-Corasick prescan early in S_find_byclass
- CVE-2026-73283 — In sshd in OpenSSH before 10.5, the restrict keyword (in authorized_keys) was supposed to be...
- CVE-2026-20713 — Always-incorrect control flow implementation in some firmware for some Intel(R) Xeon(R) processors...
- CVE-2026-14935 — Gstreamer: gstreamer: webrtcbin accepts remote sdp without a=fingerprint due to inverted presence check
- CVE-2026-56328 — Capgo - Integrity Issue in Release Routing via Multiple Public Channels