Geri qayıt
Rust soundness zəifi: kod sahə təyinatı ilə 'static ömür müddətini keçir
SiTech AI Team2 dəq oxu

Rust soundness zəifi: kod sahə təyinatı ilə 'static ömür müddətini keçir

Yeni aşkarlanan Rust problemi göstərir ki, kovariant sahə təyinatı strukturun 'static ömür məhdudiyyətini pozur və Drop koduna qısa müddətli istinadları static hesab etməyə və silinmiş yaddaşı oxumağa imkan verir.

Zəiflik

Rust növlər sistemində mövcud soundness zəifi kodun kovariant sahə təyinatı ilə strukturun 'static ömür tələbini keçirməsinə imkan verir. rust-lang/rust#164250 kimi qeyd edilən problem Q<T: 'static + Send> ümumi strukturuna aiddir və onun sahəsinə qısa ömürlü lokal dəyərə istinad təyin edilə bilər. Sahə kovariant olduğu üçün təyinat qəbul olunur, hətta dəyər 'static məhdudiyyətini qarşılamasa belə. Sonra strukturun Drop implementasiyası saxlanılan istinadı 'static kimi qəbul edir ki, bu da scope bitdikdən sonra azad edilmiş stek yaddaşının oxunmasına səbəb ola bilər.

Təsir və ciddilik

Reproducer cari nightly və stable buraxılışlarda, ən azı 1.85.0 daxil olmaqla tərtib olunur. Bir kontributorun sözlərinə görə, bu nümunə 2017-ci ildən, yəni Rust 1.18.0-dan bəri tərtib olunur. Sanitizerlərsiz proqram azad edilmiş sətirin məzmununu çap edir; AddressSanitizer zamanı isə stack-use-after-scope xətası ilə çökür. Lcnr problemi P-critical kimi deyil, P-high kimi təsnif etdi, çünki 11 ildir aşkarlanmayıb və onun istismarı təsadüfi səhv istifadəni deyil, qəsdən zərərli Drop implementasiyasını tələb edir.

Reaksiya

Problemin borrow checker, destruktorlar, ömür müddətləri və variantlıq üçün etiketləri var və onu Types Team nəzarət edir. Komanda bildirdi ki, növlər sisteminin soundness-inin düzəldilməsi böyük prioritetdir, eyni zamanda növbəti nəsil trait solver üzərində iş, region constraint emalı və Project Zero. Bildirişdən dərhal sonra „fix: refuse handles in aggregate storage on both front ends“ başlıqlı commit push edildi. GitHub mövzu müvəqqəti olaraq bloklandı və onun sərt müzakirəyə səbəb olmasından sonra yalnız kolaboratorlarla məhdudlaşdırıldı.

Mənbələr: Hacker News

SSiTech

SiTech — AI ilə gücləndirilmiş veb hazırlanması

Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.