Rust borrow checker में 11 साल पुरानी गंभीर बग मिली
मूल शीर्षक: 11 year old unsoundness bugs found in Rust borrow checker
यह क्यों महत्वपूर्ण है
Rust की memory safety गारंटी सिस्टम programming में उसकी पहचान है — उसमें 11 साल पुरानी soundness बग का मिलना पूरे भरोसे पर सवाल उठाती है।
13 अक्टूबर 2026 को GitHub पर issue #164250 दर्ज हुआ, जिसमें Rust के borrow checker में covariant field assignment के ज़रिए struct की lifetime requirements को bypass करने की 11 साल पुरानी soundness बग सामने आई।
Rust की type system की बुनियादी गारंटी है कि वह memory unsafety को रोकती है। लेकिन jsnell द्वारा खोजी गई यह बग — issue #164250 — इस गारंटी में एक गंभीर छेद साबित होती है। बग का सार यह है कि किसी struct के covariant field को assign करने पर उस struct की lifetime requirements को बिना unsafe code लिखे bypass किया जा सकता है। यह 'I-unsound' श्रेणी की बग है, जिसे Rust टीम सबसे खतरनाक किस्म मानती है।
Rust team ने issue पर स्पष्ट किया कि यह P-high priority है और अगर पहले पता चलती तो P-critical होती। इस बग को ठीक करने के लिए Types Team पहले से next-generation trait solver, region constraint rework और Project Zero जैसे बड़े प्रयासों पर काम कर रही है। इस issue को A-borrow-checker, A-lifetimes, A-variance और A-destructors जैसे कई labels दिए गए हैं, जो दर्शाते हैं कि समस्या कई स्तरों को प्रभावित करती है। फिलहाल issue open है और GitHub पर इसे काफी ध्यान मिल रहा है।