Impact
This flaw in Rocq’s guard checker causes it to incorrectly treat a parameter of a nested mutual fixpoint as uniform when cross‑call interactions are present. As a result, a definition that does not structurally decrease is still accepted, leading to a term whose value equals its own successor. The consequence is a proof of False with no extra axioms or unsafe flags, allowing an attacker to derive any proposition within a Rocq session.
Affected Systems
Rocq Prover developers ship this vulnerability in versions 8.20 through 9.1.x. The fix is released in release 9.2.0. Users running any earlier or 9.x minor releases are susceptible. The product is the open‑source Rocq theorem prover available from the upstream project.
Risk and Exploitability
The CVSS score is 6.8, indicating a medium severity impact. No EPSS data is available, and the vulnerability is not listed in CISA KEV. Attackers can exploit the flaw locally by executing arbitrary Coq code that defines a non‑terminating mutual fixpoint. Once triggered, the guard checker accepts it and a proof of False is produced, effectively undermining soundness and enabling any subsequent logical consequence. The exploit requires no special privileges beyond the ability to run user code in Rocq.
OpenCVE Enrichment