U bazi podataka paketa distribucije Ubuntu Verzija 26.10, čije je izdanje planirano za 15. oktobar, označava potpuni prelazak na uutils coreutils (Rust Coreutils) alat, napisan u Rust programskom jeziku. Rust Coreutils alati su u potpunosti zamijenili sve komponente GNU Coreutils paketa, uključujući cp, mv i rm alate, koji... Ubuntu Verzije 26.04 su isporučivane u varijanti GNU Coreutils-a.
Paket rust-coreutils je prvobitno bio podrazumevano uključen u izdanje. Ubuntu 25.10, ali u LTS grani Ubuntu Dana 26.04. aprila, uslužni programi cp, mv i rm iz GNU Coreutils paketa su vraćeni na prethodno stanje. Ove opcije su vraćene zbog sigurnosnih problema otkrivenih tokom revizije kodne baze Rust Coreutils. Većina ranjivosti u Rust Coreutils-u uzrokovana je uslovima utrke, koji omogućavaju modifikaciju podataka nakon što su informacije provjerene, ali prije nego što se izvrši operacija (TOCTOU — Time-Of-Check-To-Time-Of-Use). Između ostalog, takve ranjivosti omogućavaju zamjenu datoteke simboličnom vezom između završetka provjere i početka operacije.
Prilikom korištenja uslužnih programa cp, mv i rm u sistemskim skriptama koje se pokreću s root privilegijama, zamjena simboličke veze omogućava kopiranje, prepisivanje ili brisanje proizvoljnih datoteka. Na primjer, prilikom rekurzivnog brisanja direktorija, uslužni program rm prvo skenira sve direktorije, a zatim ih sekvencijalno briše obrnutim redoslijedom pozivanjem funkcije rmdir(). Zamjenom simboličke veze za roditeljski direktorij odmah nakon skeniranja tog direktorija, ali prije skeniranja njegovih podređenih direktorija, možete izbrisati bilo koji direktorij na sistemu kada se cron skripta /etc/cron.daily/apport pokreće svakodnevno. Pokrenuta kao root, skripta rekurzivno briše sadržaj direktorija /var/crash, u koji mogu pisati svi korisnici na sistemu.
izvor: opennet.ru
