I basen av distrubutionen Ubuntu 26.10, som slÀpps den 15 oktober, har en fullstÀndig övergÄng till verktygssatsen uutils coreutils (Rust Coreutils), skriven i Rust, genomförts. Verktygen frÄn Rust Coreutils har helt ersatt alla komponenter i paketet GNU Coreutils, inklusive verktygen cp, mv och rm, som i Ubuntu 26.04 levererades i versionen frÄn GNU Coreutils.
Paketet rust-coreutils inkluderades ursprungligen som standard i utgÄvan av Ubuntu 25.10, men i LTS-grenen av Ubuntu 26.04 gjordes en rollback till leverans av verktygen cp, mv och rm frÄn GNU Coreutils. Varianterna cp, mv och rm Äterfördes pÄ grund av sÀkerhetsproblem som upptÀcktes under en granskning av kodbasen för Rust Coreutils. Största delen av sÄrbarheterna i Rust Coreutils orsakas av tillstÄndstÀvlingar, vilket möjliggör Àndring av data i tiden mellan kontroll av korrekt information och utförandet av operationer med dem (TOCTOU - Time-Of-Check-To-Time-Of-Use). Bland annat kan sÄdana sÄrbarheter tillÄta att en fil ersÀtts med en symbolisk lÀnk mellan avslutandet av kontrollen och pÄbörjandet av operationen.
I kontexten av anvÀndningen av verktygen cp, mv och rm i systemskript som körs med root-rÀttigheter, ger insÀttningen av en symbolisk lÀnk möjlighet att kopiera, överskriva eller ta bort godtyckliga filer. Till exempel, vid rekursiv borttagning av kataloger, kontrollerar verktyget rm först alla kataloger och tar sedan bort dem sekventiellt i omvÀnd ordning genom att anropa funktionen rmdir(). Om man byter ut förÀldrakatalogen mot en symbolisk lÀnk omedelbart efter att denna katalog har kontrollerats, men innan kontrollen av dess underkataloger, kan man Ästadkomma borttagning av vilken katalog som helst i systemet vid daglig körning av cron-skriptet /etc/cron.daily/apport, som körs med root-rÀttigheter och rekursivt tar bort innehÄllet i katalogen /var/crash, som Àr skrivbar för alla anvÀndare i systemet.
KĂ€lla: opennet.ru
