Postmortem for Kernel Soundness Bug #14576
3 hours ago
- A soundness bug in the Lean kernel (#14576) was reported and fixed, involving nested inductive types.
- The bug allowed a proof of False via ill-typed arguments in phantom parameters, only reachable through metaprogramming.
- Two independent bugs in the official kernel and nanoda checker were needed for the exploit; both have been fixed.
- Practical consequence: independent kernel checking requires current versions of both checkers.
- lean4lean is affected by the same bug, as it ports the reference implementation.
- Removing metaprogramming is misguided; the kernel must reject ill-typed terms independently.
- FRO actions include regression tests, kernel hardening, AI-assisted bug finding, and running nanoda by default.