Lean 4 Kernel Type Checking Bypass via Mismatched Structure Projections
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- Passive
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- —
- Confidentiality · integrity · availability
- None · High · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA.
Summary
The Lean 4 kernel does not verify that the structure named in a projection expression matches the type of the value being projected, and environment::add_inductive in src/kernel/inductive.cpp did not type check the nested inductive applications that are replaced by auxiliary types, so their parametric arguments escaped checking. A metaprogram running in the Lean process can register an ill-typed nested inductive whose constructor applies a .proj C 0 projection to a value of the unrelated type W, and the kernel admits the declaration through the ordinary checked addDecl path at maximum kernel checking, without sorry, unsafeCast, debug.skipKernelTC, addDeclWithoutChecking, FFI, or a modified .olean file. The result is a type confusion yielding a proof of False that carries no axioms, from which any proposition can be derived. The published proof of concept additionally pads two expressions until their hashes and approximate depths collide, which defeats kernel caching; that is the technique used to reach the flaw, not its cause. Exploitation requires running a metaprogram in-process, for example by building a project or importing a malicious Lake dependency.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| leanprover | lean4 | before 4.32.2; 4.33.0-rc1 | 4.32.2 | Patch available | CNA |
- lean4 Vendorleanprover Affected before 4.32.2; 4.33.0-rc1 Fixed in 4.32.2 Patch available CNA
Remediation
- Fix · CNA lean4 (leanprover) Fixed in 4.32.2
Timeline
- 2026-10-02 Threatist record created from CVE-2026-72844
- 2026-10-03 Alias added: GHSA-4fhc-8rq3-cjvg
References
More leanprover vulnerabilities
- TI-2026-50947 Lean 4 before 4.32.2 Kernel Accepts Opaque Declaration With an Unbound Free Variable CVSS 4.0MEDIUM 6.8
- TI-2026-25224 XSS in @leanprover/unicode-input-component CVSS 4.0N/A 0.0
Sources
- CVE-2026-72844 · CVE Program
- CVE-2026-72844 · NVD
- FIRST EPSS
- GHSA-4fhc-8rq3-cjvg · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences