Rustのborrow checkerに11年前から潜むunsoundnessバグが発見される
11 year old unsoundness bugs found in Rust borrow checker
Rustのborrow checkerに、少なくとも1.4以降から存在するunsoundnessの脆弱性がGitHub issue #164250で報告された。structのlifetime要件がcovariantなフィールド代入によって回避され、use-after-freeやメモリ解放後の参照が発生する。複数の再現コードが示され、型システムの根本的な問題としてP-highの優先度で修正が進められている。
私のバージョンのコードは1.18.0(2017年)以来ずっとコンパイルされてきた。一体どうしてこれが今まで見つからなかったのか???