I distribusjonens pakkedatabase Ubuntu Versjon 26.10, som er planlagt utgitt 15. oktober, markerer en fullstendig overgang til verktøysettet uutils coreutils (Rust Coreutils), skrevet i Rust-språket. Rust Coreutils-verktøyene har fullstendig erstattet alle komponentene i GNU Coreutils-pakken, inkludert verktøyene cp, mv og rm, som Ubuntu 26.04 ble levert i en variant av GNU Coreutils.
Pakken rust-coreutils ble opprinnelig inkludert som standard i utgivelsen Ubuntu 25.10, men i LTS-grenen Ubuntu 26.04. april ble verktøyene cp, mv og rm fra GNU Coreutils-pakken rullet tilbake. Disse alternativene ble tilbakestilt på grunn av sikkerhetsproblemer som ble oppdaget under en revisjon av Rust Coreutils-kodebasen. De fleste sårbarheter i Rust Coreutils er forårsaket av kappløpsbetingelser, som tillater at data endres etter at informasjonen er bekreftet, men før en operasjon utføres (TOCTOU — Time-Of-Check-To-Time-Of-Use). Blant annet tillater slike sårbarheter at en fil erstattes med en symbolsk lenke mellom fullføringen av sjekken og starten av operasjonen.
Når du bruker verktøyene cp, mv og rm i systemskript som kjører med rotrettigheter, tillater det å erstatte med en symbolsk lenke at vilkårlige filer kopieres, overskrives eller slettes. For eksempel, når du sletter kataloger rekursivt, skannet rm-verktøyet først alle kataloger og slettet dem deretter sekvensielt i omvendt rekkefølge ved å kalle rmdir()-funksjonen. Ved å erstatte en symbolsk lenke for den overordnede katalogen umiddelbart etter at du har skannet den katalogen, men før du skanner de underordnede katalogene, kan du slette en hvilken som helst katalog på systemet når cron-skriptet /etc/cron.daily/apport kjøres daglig. Når skriptet kjører som rot, sletter det rekursivt innholdet i katalogen /var/crash, som er skrivbar av alle brukere på systemet.
Kilde: opennet.ru
