Dağıtımın paket veritabanında Ubuntu 15 Ekim'de yayınlanması planlanan 26.10 sürümü, Rust dilinde yazılmış uutils coreutils (Rust Coreutils) araç setine tam bir geçişi işaret ediyor. Rust Coreutils yardımcı programları, cp, mv ve rm yardımcı programları da dahil olmak üzere GNU Coreutils paketinin tüm bileşenlerinin yerini tamamen aldı. Ubuntu 26.04, GNU Coreutils'in bir varyantı olarak sunulmuştur.
rust-coreutils paketi başlangıçta sürümde varsayılan olarak dahil edilmişti. Ubuntu 25.10, ancak LTS dalında Ubuntu 26.04 Nisan'da, GNU Coreutils paketindeki cp, mv ve rm yardımcı programları geri alındı. Bu seçenekler, Rust Coreutils kod tabanının denetimi sırasında keşfedilen güvenlik sorunları nedeniyle geri alındı. Rust Coreutils'deki güvenlik açıklarının çoğu, bilginin doğrulanmasından sonra ancak bir işlem gerçekleştirilmeden önce verilerin değiştirilmesine izin veren yarış koşullarından (TOCTOU - Kontrol Zamanı ile Kullanım Zamanı Arası) kaynaklanmaktadır. Bu tür güvenlik açıkları, diğer şeylerin yanı sıra, kontrolün tamamlanması ile işlemin başlangıcı arasında bir dosyanın sembolik bir bağlantı ile değiştirilmesine olanak tanır.
Kök ayrıcalıklarıyla çalıştırılan sistem komut dosyalarında `cp`, `mv` ve `rm` yardımcı programları kullanılırken, sembolik bağlantı kullanmak, rastgele dosyaların kopyalanmasına, üzerine yazılmasına veya silinmesine olanak tanır. Örneğin, dizinleri özyinelemeli olarak silerken, `rm` yardımcı programı önce tüm dizinleri tarar ve ardından `rmdir()` fonksiyonunu çağırarak bunları ters sırada sırayla siler. Üst dizini taradıktan hemen sonra, ancak alt dizinlerini taramadan önce, üst dizin için sembolik bir bağlantı kullanarak, `/etc/cron.daily/apport` cron komut dosyası günlük olarak çalıştırıldığında sistemdeki herhangi bir dizini silebilirsiniz. Kök kullanıcı olarak çalıştırılan komut dosyası, sistemdeki tüm kullanıcılar tarafından yazılabilir olan `/var/crash` dizininin içeriğini özyinelemeli olarak siler.
Kaynak: opennet.ru
