CVE-2026-72711
Lean 4 avant 4.32.2 : le noyau accepte une déclaration opaque avec une variable libre non liée
- Publié
- 24 août 2026
- Mise à jour
- 26 oct. 2026
- Attribution de CNA
- VulnCheck
- Preuve observée
- 26 oct. 2026
CVSS primaire
nvd · CVSS 4.0
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XFaible · 30 prochains jours
- Percentile
- 7,1 %
- Date du modèle
- 25 oct. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
Le noyau Lean 4 ne vérifie pas que le corps d'une déclaration opaque est clos. environment::add_opaque omet l'appel à check_no_metavar_no_fvar que les chemins de définition et de théorème effectuent, de sorte qu'une valeur contenant une variable libre absente du contexte local n'est pas rejetée d'emblée. Un métaprogramme peut d'abord amener le noyau à créer un local temporaire de type False et à enregistrer son type dans le cache d'inférence du vérificateur de types, puis restaurer le contexte local tandis que cette entrée de cache persiste sur la même instance de vérificateur de types, et enfin soumettre une déclaration opaque dont la valeur est la variable désormais non liée. La consultation du cache répond avant la branche qui testerait l'appartenance au contexte local, de sorte que le noyau infère le type mis en cache et admet une constante opaque de type False, à partir de laquelle toute proposition découle. La déclaration est acceptée via le chemin vérifié ordinaire à la vérification maximale du noyau, sans sorry, unsafeCast, debug.skipKernelTC, addDeclWithoutChecking, code étranger ni fichier .olean modifié, et le résultat ne porte aucun axiome. Corrigé dans la version 4.32.2 par l'ajout de la vérification de clôture manquante.
Sources
CVE-2026-72711 — Bug de solidité du noyau Lean 4 : empoisonnement du cache d'inférence
Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.