Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
lean-cve-poc — CVE-2026-72844 : Beispiel für den Beweis von "0 = 1" mithilfe einer Schwachstelle im Lean-4-Kernel. | Kitploit
Tools/GitHubGitHub/endrazine/lean-cve-poc
SchwachstellenanalyseExploitationLernen & Bildung
GitHubendrazine/lean-cve-poc

lean-cve-poc

CVE-2026-72844 : Beispiel für den Beweis von "0 = 1" mithilfe einer Schwachstelle im Lean-4-Kernel.

Repository anzeigen
231vor 2 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-72844: Soundness-Fehler im Lean-4-Kernel

Axiomfreier Beweis von 0 = 1 durch Umgehung der Projektionsvalidierung bei verschachtelten induktiven Typen.

Tool herunterladen
FeldWert
CVECVE-2026-72844
AdvisoryVulnCheck VCSA
Bug-Reportleanprover/lean4#14576
Fixleanprover/lean4#14577
BetroffenLean 4 ≤ v4.31.0 / nightly ≤ 2026-07-27
Behoben innightly 2026-07-29+ / v4.32.2
CVSS 4.0AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N — 6.8 MEDIUM
CVSS 3.1AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:N — 6.3 MEDIUM
CWECWE-843 (Typverwechslung)

Zusammenfassung der Schwachstelle

Der Lean-4-Kernel prüft nicht, ob die in einem Projektionsausdruck genannte Struktur mit dem Typ des projizierten Werts übereinstimmt, und environment::add_inductive in src/kernel/inductive.cpp führte keine Typprüfung der verschachtelten induktiven Anwendungen durch, die durch Hilfstypen ersetzt werden, sodass ihre parametrischen Argumente der Prüfung entgingen.

Ein im Lean-Prozess laufendes Metaprogramm kann einen falsch typisierten verschachtelten induktiven Typ registrieren, dessen Konstruktor eine .proj C 0-Projektion auf einen Wert des fremden Typs W anwendet, und der Kernel akzeptiert die Deklaration über den normalen geprüften addDecl-Pfad bei maximaler Kernel-Prüfung. Das Ergebnis ist eine Typverwechslung, die einen Beweis von False ohne Axiome liefert, woraus jede Aussage — einschließlich 0 = 1 — abgeleitet werden kann.

Der Exploit:

  • Verwendet ausschließlich den geprüften addDecl-Kernelpfad
  • Läuft mit --trust=0 (maximale Prüfung)
  • Meldet keine Axiome über #print axioms
  • Verwendet weder sorry, unsafeCast, debug.skipKernelTC, FFI noch .olean-Manipulation

Verwendung

root@kitploit:~
docker build -t lean-cve-poc .
docker run --rm lean-cve-poc

Erwartete Ausgabe auf einer verwundbaren Lean-Version:

root@kitploit:~
[*] Running ZeroEqOne.lean with --trust=0 ...
'bad' does not depend on any axioms
'boom' does not depend on any axioms
'zero_eq_one' does not depend on any axioms
zero_eq_one : 0 = 1

[!] VULNERABILITY CONFIRMED — CVE-2026-72844

    zero_eq_one : 0 = 1
    Depends on: no axioms

Auf einer gepatchten Lean-Version weist der Kernel den falsch typisierten induktiven Typ zurück, und das Skript meldet, dass die Version nicht verwundbar ist.

Auswirkungen

Jedes System, das den kernel-geprüften Beweisen von Lean als Grundwahrheit vertraut, ist betroffen. Dazu gehören:

  • Formal verifizierte Software: Compiler, kryptografische Bibliotheken, Smart Contracts, Avionik, Automobilindustrie — jeder Sicherheitsnachweis, der auf einem Lean-Beweis aufbaut, ist ungültig, wenn er mit einer betroffenen Version erstellt wurde.
  • Proof-Carrying Code: Eine bösartige Abhängigkeit in einem Lake-Paket kann stillschweigend inkorrekte Deklarationen einführen, die nachgelagerter Code verwendet.
  • Unabhängige Prüfer: Es wurde gezeigt, dass dieselbe Fehlerklasse auch den unabhängigen Typprüfer Nanoda umgeht.

Technische Details

Die Ursache liegt in der Behandlung verschachtelter induktiver Typen durch den Kernel. Beim Eliminieren eines verschachtelten Vorkommens I Ds is muss der Kernel prüfen, ob die parametrischen Argumente Ds mit den deklarierten Parametern des induktiven Typs übereinstimmen. Der verwundbare Code prüft nicht, ob Projektionsausdrücke (.proj) in Ds auf den korrekten Strukturnamen verweisen — ein .proj C 0 w wird selbst dann akzeptiert, wenn w : W und W ≠ C.

In Kombination mit einer Hash-Kollision (der Kernel verwendet Expr.hash-Vergleiche bei seiner definitionalen Gleichheitsprüfung) ermöglicht dies einem Angreifer, Deklarationen zu registrieren, bei denen die interne Typzuweisung des Kernels von der tatsächlichen Term-Semantik abweicht, was zu Typverwechslung und einem Beweis von False führt.

Referenzen

  • NVD: CVE-2026-72844
  • VulnCheck Advisory
  • oss-security-Meldung
  • Lean 4 Issue #14576
  • Fix-PR #14577
  • Fix-Commit

Danksagungen

  • Fehlerentdeckung und minimaler PoC: @kiranandcode
  • Ursprünglicher CollatzLean-Exploit: @xrchz (Ramana Kumar)
  • Kernel-Fix: Leonardo de Moura (PR #14577)
  • CVE-Einreichung und PoC-Paketierung: Jonathan Brossard (@endrazine)