Företaget Canonical har publicerat preliminÀra resultat frÄn en oberoende sÀkerhetsgranskning av verktyget uutils coreutils (Rust Coreutils), som Àr skrivet pÄ Rust och delvis anvÀnds i Ubuntu istÀllet för GNU Coreutils-paketet. Granskningen genomfördes av företaget Zellic, som har erfarenhet av att analysera sÄrbarheter i projekt skrivna i Rust. Under granskningen upptÀcktes 113 sÀkerhetsproblem.
Just nu Àr rapporten (PDF, 156 sidor) med resultaten frÄn den första etappen av granskningen tillgÀnglig, vilket omfattar de mest viktiga verktygen frÄn uutils-setet. Den första etappen, som genomfördes frÄn december 2025 till januari 2026, upptÀckte 73 sÄrbarheter, varav 7 betecknades som kritiska, 11 som farliga, 29 som medelhöga och 26 som icke-farliga.
Den andra etappen av granskningen genomfördes frÄn februari till mars och omfattade sekundÀra verktyg som inte kontrollerades under den första etappen. Under den andra etappen upptÀcktes 40 sÄrbarheter, vars fara för nÀrvarande inte har detaljerats (rapporten planeras att publiceras senare). Informationen om alla upptÀckta problem har redan överlÀmnats till utvecklarna av uutils, och en stor del av sÄrbarheterna har ÄtgÀrdats i versionerna uutils 0.5-0.8 utan offentlig kÀnnedom och utan mÀrkning av samband mellan de införda korrigeringarna och ÄtgÀrdandet av sÄrbarheterna.
Paketen rust-coreutils inkluderades som standard i höstversionen av Ubuntu 25.10, men med hĂ€nsyn till de problem som avslöjades under granskningen har verktygen cp, mv och rm frĂ„n GNU Coreutils-setet Ă„terinförts i LTS-grenen av Ubuntu 26.04. Det noteras att per den 22 april finns det fortfarande 8 kĂ€nda race-conditions i dessa verktyg som inte har Ă„tgĂ€rdats. Ăvriga verktyg anvĂ€nds frĂ„n versionen rust-coreutils 0.8.0. I Ubuntu 26.10 avser utvecklarna att helt övergĂ„ till rust-coreutils.
SÄrbarheter i systemverktygen Àr farliga eftersom de anvÀnds i skript som körs med root-rÀttigheter. Till exempel kunde en sÄrbarhet som ÄtgÀrdades i version uutils coreutils 0.3.0 i rm-verktyget utnyttjas vid det dagliga körandet av 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.
Bland de sÄrbarheter som markerades som kritiska i den första rapporten:
- En sĂ„rbarhet i chroot-verktyget, orsakad av hantering av alternativet "âuserspec" efter anropet av chroot(), men före Ă„terstĂ€llning av privilegier. PĂ„ system med glibc leder namnupplösning via funktionen getpwnam() till lĂ€sning av filen /etc/nsswitch.conf, som anvĂ€nds i NSS (Name Service Switch), och dynamisk inlĂ€sning av de bibliotek som anges i den med NSS-moduler (libnss_*.so.2). Eftersom chroot()-anropet utförs före behandling av NSS laddas filen /etc/nsswitch.conf relativt den nya rotkatalogen, men NSS-biblioteken laddas innan privilegierna Ă„terstĂ€lls. Om anvĂ€ndaren har skrivĂ„tkomst till den nya rotkatalogen kan han infoga sina egna NSS-bibliotek och utföra kod med root-rĂ€ttigheter.
- Ăndring av filĂ„tkomst efter ett misslyckande av att skapa en namngiven kanal (FIFO) med verktyget mkfifo â nĂ€r en befintlig fil anges som argument, returnerar mkfifo ett fel, men avslutar inte kraschat utan anropar set_permissions() och Ă€ndrar Ă„tkomstrĂ€ttigheterna för den befintliga filen. Med umask 022 tillĂ„ter sĂ„rbarheten att Ă€ndra filrĂ€ttigheterna till 644 (rw-r--r--) och fĂ„ Ă„tkomst till filer för vilka lĂ€sning inte var tillĂ„ten.
- ĂvergĂ„ng av begrĂ€nsningar ââpreserve-rootâ i chmod-verktyget, som förbjuder rekursiva Ă„tgĂ€rder avseende roten av filsystemet. SĂ„rbarheten (CVE-2026-35338) uppstĂ„r eftersom koden bara kontrollerade exakt matchning av sökvĂ€gen med â/â och ingen kanonisering av filvĂ€gen utfördes. För att kringgĂ„ kontrollen rĂ€cker det med att anvĂ€nda en vĂ€g som "../" eller en symbolisk lĂ€nk till roten. SĂ„rbarheten Ă€r farlig i det att om man kan sĂ€tta sin egen vĂ€g i ett systemscript som anropar chmod-kommandot kan man uppnĂ„ rekursiva Ă€ndringar av Ă„tkomstrĂ€ttigheter för alla filer i filsystemet.
- I rm-verktyget tillĂ„ts behandling av alla förkortningar av alternativet ââno-preserve-rootâ (âânâ, âânoâ, ââno-pâ, ââno-presâ etc.) för att stĂ€nga av skyddet mot att utföra rekursiva operationer med roten (till exempel kan man ange ârm -rf ân /â och av misstag ta bort all data). I GNU Coreutils Ă€r sĂ„dana förkortade alternativ förbjudna.
- ĂvergĂ„ng av begrĂ€nsningar ââpreserve-rootâ i rm-verktyget, som förbjuder rekursiva operationer avseende roten i filsystemet, genom att anvĂ€nda en symbolisk lĂ€nk till "/".
- Avsaknad av fullstĂ€ndig skydd mot angivelse av kataloger som börjar med en punkt. Till exempel, nĂ€r man kör ârm -rf .â kommer verktyget att ge ett felmeddelande, men med angivelse av ârm -rf ./â eller ârm -rf .///â kommer det tyst att ta bort den aktuella katalogen.
- Ett fel i analyseringskoden för kill-verktyget gör det möjligt att skicka en signal till alla processer i systemet genom att ange process-ID:t â-1â (kill -1).
I övrigt hör de flesta sÄrbarheterna till klassen TOCTOU (Time-Of-Check-To-Time-Of-Use), vilket innebÀr att det finns ett racetillstÄnd som möjliggör förÀndring av data efter att kontrollen av informationens korrekthet har gjorts, men före operationen med dem. Det kan till exempel handla om att byta ut en fil mot en symbolisk lÀnk mellan att kontrollen slutförts och operationens utförande pÄbörjas. I samband med anvÀndningen av cp- och mv-verktyg i systemskript som körs med root-rÀttigheter, ger sÄdana sÄrbarheter möjlighet att kopiera eller skriva över godtyckliga filer.
KĂ€lla: opennet.ru
