Description
Print Assumptions does not report that a definition was produced while universe checking was disabled when that definition reaches the caller through Parameter Inline in a module type. Applying a functor inlines the body of the parameter, and the inlining drops the record that the term was built under Unset Universe Checking, so the resulting constant carries no trace of the unsafe operation. A module implementation can therefore prove False using a universe inconsistency, expose it through an inlined parameter, and have Print Assumptions report the dependent proof as closed under the global context. Because Print Assumptions is the in-process audit used to confirm that a development rests on no unexpected assumptions, a dependency built this way passes that audit while proving arbitrary propositions. The standalone checker coqchk does reject the resulting compiled file. The project records this in dev/doc/critical-bugs.md under non-fixed bugs and rates the risk as moderate when coqchk is not used.
Published: 2026-08-24
Score: 6.8 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Untrusted Proof Creation via unsafe universe inlining
Action: Assess Impact
AI Analysis

Impact

Print Assumptions fails to flag that a definition was built while universe checking was disabled when that definition is later exposed through an inlined parameter in a module type. A module that proves False using a universe inconsistency can therefore be brought into the caller’s context and reported as a closed proof by Print Assumptions. This allows an attacker to construct an apparently valid proof of an arbitrary proposition while the underlying reasoning is unsound. The bug does not affect the compiled file directly – the standalone checker coqchk rejects the output – but it undermines internal audit mechanisms that rely on Print Assumptions.

Affected Systems

The vulnerability affects the Rocq Prover (rocq-prover:rocq). No specific product versions were listed, so the issue applies to any version of Rocq that contains the described code path.

Risk and Exploitability

The CVSS score of 6.8 indicates moderate severity. EPSS data is unavailable and the bug is not listed in the CISA KEV catalog, suggesting it is not a widely exploited vulnerability. The most likely attack vector is a local user with the ability to construct Rocq modules that disable universe checking and then inline them, or a build system that relies on Print Assumptions to confirm proof integrity. Because the compiled file is flagged by coqchk, the risk is mitigated when that tool is used, but if a project relies solely on Print Assumptions for certification, the vulnerability could allow undetected false proofs to be accepted.

Generated by OpenCVE AI on August 24, 2026 at 21:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Use an external checker such as coqchk to validate compiled proofs instead of relying solely on Print Assumptions.
  • Ensure that universe checking is enabled in all modules that will be inlined; avoid using "Unset Universe Checking" in module bodies.
  • Check for and install any Rocq release that includes a fix for this issue; monitor upstream for updates or advisories.

Generated by OpenCVE AI on August 24, 2026 at 21:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 28 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Rocq-prover
Rocq-prover rocq
Vendors & Products Rocq-prover
Rocq-prover rocq

Tue, 25 Aug 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 24 Aug 2026 20:15:00 +0000

Type Values Removed Values Added
Description Print Assumptions does not report that a definition was produced while universe checking was disabled when that definition reaches the caller through Parameter Inline in a module type. Applying a functor inlines the body of the parameter, and the inlining drops the record that the term was built under Unset Universe Checking, so the resulting constant carries no trace of the unsafe operation. A module implementation can therefore prove False using a universe inconsistency, expose it through an inlined parameter, and have Print Assumptions report the dependent proof as closed under the global context. Because Print Assumptions is the in-process audit used to confirm that a development rests on no unexpected assumptions, a dependency built this way passes that audit while proving arbitrary propositions. The standalone checker coqchk does reject the resulting compiled file. The project records this in dev/doc/critical-bugs.md under non-fixed bugs and rates the risk as moderate when coqchk is not used.
Title Coq and Rocq Prover Print Assumptions Omits Unsafe Universe Checking Inlined Through Parameter Inline
Weaknesses CWE-778
References
Metrics cvssV3_1

{'score': 6.3, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:N'}

cvssV4_0

{'score': 6.8, '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'}


Subscriptions

Rocq-prover Rocq
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-25T15:10:45.964Z

Reserved: 2026-08-19T11:37:41.053Z

Link: CVE-2020-37268

cve-icon Vulnrichment

Updated: 2026-08-25T15:10:19.813Z

cve-icon NVD

Status : Deferred

Published: 2026-08-24T20:16:40.560

Modified: 2026-09-08T20:23:49.880

Link: CVE-2020-37268

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-28T20:38:50Z

Weaknesses