Bug de 11 ans dans le borrow checker de Rust
Original : 11 year old unsoundness bugs found in Rust borrow checker
Pourquoi c'est important
Une faille de soundness dans Rust remet en cause sa promesse centrale de sécurité mémoire.
Un bug de type 'unsoundness' vieux de 11 ans a été découvert dans le borrow checker de Rust : les exigences de durée de vie d'une struct peuvent être contournées via l'assignation d'un champ covariant.
Le 13 octobre 2026, l'utilisateur jsnell a ouvert l'issue #164250 sur le dépôt officiel de Rust, révélant une faille de sûreté mémoire dans le borrow checker du langage. Le bug, classé 'I-unsound' et 'P-high', permet de contourner les contraintes de durée de vie (lifetime) d'une struct en exploitant l'assignation d'un champ covariant. En clair : le système de types, censé garantir la sécurité mémoire sans garbage collector, peut être trompé dans certains cas précis impliquant variance et destructeurs.
L'équipe Rust a précisé que le bug aurait été classé 'P-critical' indépendamment de toute exploitation dans la nature. Elle rappelle travailler activement sur plusieurs fronts pour éliminer ce type de failles : le nouveau solveur de traits, la refonte des contraintes de régions, et le projet 'Project Zero', dont l'objectif est d'éradiquer les failles de soundness connues dans le système de types. Aucun correctif n'est encore mentionné dans l'issue, mais la priorité est explicitement élevée.