Jakelun pakettitietokannassa Ubuntu 26.10, joka on määrä julkaista 15. lokakuuta, merkitsee täydellistä siirtymistä uutils coreutils (Rust Coreutils) -työkalupakkiin, joka on kirjoitettu Rust-kielellä. Rust Coreutils -apuohjelmat ovat korvanneet kokonaan kaikki GNU Coreutils -paketin komponentit, mukaan lukien cp-, mv- ja rm-apuohjelmat, jotka Ubuntu 26.04 toimitettiin GNU Coreutils -varianttina.
rust-coreutils-paketti sisältyi alun perin oletuksena julkaisuun Ubuntu 25.10, mutta LTS-haarassa Ubuntu GNU Coreutils -paketin cp-, mv- ja rm-apuohjelmat palautettiin 26.04. huhtikuuta. Nämä asetukset palautettiin Rust Coreutils -koodikannan tarkastuksen aikana havaittujen tietoturvaongelmien vuoksi. Useimmat Rust Coreutils -haavoittuvuudet johtuvat kilpailuehdoista, jotka sallivat tietojen muokkaamisen sen jälkeen, kun tiedot on vahvistettu, mutta ennen toiminnon suorittamista (TOCTOU — Time-Of-Check-To-Time-Of-Use). Tällaiset haavoittuvuudet mahdollistavat muun muassa tiedoston korvaamisen symbolisella linkillä tarkistuksen valmistumisen ja toiminnon aloittamisen välillä.
Kun käytät cp-, mv- ja rm-apuohjelmia pääkäyttäjän oikeuksilla suoritettavissa järjestelmäskripteissä, symbolisen linkin korvaaminen mahdollistaa mielivaltaisten tiedostojen kopioinnin, päällekirjoittamisen tai poistamisen. Esimerkiksi hakemistoja rekursiivisesti poistettaessa rm-apuohjelma skannasi ensin kaikki hakemistot ja poisti ne sitten peräkkäin käänteisessä järjestyksessä kutsumalla rmdir()-funktiota. Korvaamalla päähakemiston symbolisen linkin heti kyseisen hakemiston skannauksen jälkeen, mutta ennen sen alihakemistojen skannausta, voit poistaa minkä tahansa järjestelmän hakemiston, kun /etc/cron.daily/apport cron-skripti suoritetaan päivittäin. Pääkäyttäjänä suoritettava skripti poistaa rekursiivisesti /var/crash-hakemiston sisällön, johon kaikki järjestelmän käyttäjät voivat kirjoittaa.
Lähde: opennet.ru
