Skip to content
OpenAdvisories
Medium · 6.3 Public exploit CVE-2026-72844 EUVD-2026-63487GHSA-4fhc-8rq3-cjvg

Lean 4 Kernel Type Checking Bypass via Mismatched Structure Projections

Published Aug 20, 2026 · Updated Nov 8, 2026 · Assigned by VulnCheck

Description

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.

Affected products

VendorProductAffectedFixed
leanprover lean4 < 4.32.2, 4.33.0-rc1 4.32.2

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

  • endrazine/lean-cve-poc ★ 26 · Aug 2, 2026

    CVE-2026-72844 : Example of proving "0 = 1" using a vulnerability in the Lean 4 kernel.

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

References