Lean 4 proof checker can be tricked into accepting false proofs
The Lean 4 tool that checks whether mathematical proofs are correct can be fooled into accepting a proof of a false statement, such as 0 = 1. This means a 'verified' result from Lean cannot be fully trusted until the fix is installed.
| Severity | HighCVSS 6.8 of 10 |
|---|---|
| Being exploited? | UnclearNo reports either way yet |
| Fix available? | Yes4.32.2 (adds the missing closure check in add_opaque) · since 26 Oct 2026 |
| How sure is this? | Official, 3 sourcesBacked by an official source |
How the attack works simplified
- 1Crafted metaprogramCreates temporary local of type False
- 2Poison cacheType stays in inference cache after context restored
- 3Submit opaque declValue refers to variable no longer in scope
- 4Kernel accepts itMissing closure check lets it through
- ResultFalse proof accepted as valid
What happened
The Lean 4 kernel's add_opaque path skips the check_no_metavar_no_fvar closure check, so an opaque declaration with a free variable missing from the local context is accepted; a stale inference-cache entry lets a crafted declaration be admitted with type False.
Are you affected?
You are affected if you run Lean 4 kernel versions before 4.32.2 and rely on its proof checking.
Lean 4 kernel, versions before 4.32.2
What to do
- Update Lean 4 to version 4.32.2 or later
- Re-check important proofs and results produced with older Lean 4 versions
Timeline
- 24 Aug 2026, 20:17 UTCPublicly disclosed
- 26 Oct 2026, 00:14 UTCReported by oss-security · oss-security
- 26 Oct 2026, 00:15 UTCPicked up by Zero Radar
- 26 Oct 2026, 00:18 UTCReported by oss-security · oss-security
- 26 Oct 2026, 00:37 UTCGitHub Advisory reported on it · GitHub Advisory
- 26 Oct 2026, 00:37 UTCFix: Lean 4.32.2 (adds the missing closure check in add_opaque)
- 26 Oct 2026, 02:23 UTCNVD reported on it · NVD
Sources 4 reports, oldest first
Official vendor, government CERT or advisory database
- CVE-2026-72711NVD · 24 Aug 2026, 20:17 UTC
- The Lean 4 kernel does not check that the body of an opaque declaration is closed. environment:...GitHub Advisory · 24 Aug 2026, 21:33 UTC
Security researchers research teams and mailing lists
- CVE-2026-72711: Lean 4 kernel soundness bug — inference cache poisoning via opaque declarations (0 = 1 demonstrated)oss-security · 26 Oct 2026, 00:14 UTC
- CVE-2026-72704: Rocq guard checker trusts corrupted recursive tree after transport (0 = 1 demonstrated) — 0-dayoss-security · 26 Oct 2026, 00:18 UTC
Technical details
- ID
- CVE-2026-72711 · GHSA-fhmq-xvc2-q54h
- CVSS
- 6.8 / 10
- EPSS
- 0.2% chance of exploitation within 30 days
- Disclosed
- 24 Aug 2026, 20:17 UTC
- On Zero Radar
- 26 Oct 2026, 00:15 UTC (62 days after disclosure)
- Last change
- 26 Oct 2026, 02:23 UTC
The plain-language parts and the attack diagram were written by an AI model (anthropic/claude-haiku-5.5) from the sources above. Facts like versions, exploitation and dates come from the sources themselves. How Zero Radar works