EttevĂ”te Canonical avaldas eelnevad tulemused uutils coreutils (Rust Coreutils) turvaauditi kohta, mis on kirjutatud programmis Rust ja osaliselt kasutusel Ubuntu sĂŒsteemis GNU Coreutils paketi asemel. Auditi viis lĂ€bi Zellic, kes omab kogemusi turvaaukude analĂŒĂŒsimisel Rusti projektides. Kontrollimise kĂ€igus tuvastati 113 turvaprobleemi.
Praegu on juba saadaval aruande (PDF, 156 lehekĂŒlge) tulemused esimese auditi etapi kohta, mis katab kĂ”ige olulisemad uutils tööriistad. Esimene etapp, mis viidi lĂ€bi detsembrist 2025 jaanuarini 2026, tuvastas 73 turvaauku, millest 7 on mĂ€rgitud kriitiliseks, 11 ohtlikuks, 29 mÔÔdukaks ohuks ja 26 mitteohtlikuks.
Teine auditi etapp viidi lÀbi veebruarist mÀrtsini ja katab teisejÀrgulised tööriistad, mida esimeses etapis ei kontrollitud. Teisel etapil leiti 40 turvaauku, mille ohtlikkust ei ole veel detailselt kirjeldatud (aruande avaldamine on planeeritud hiljem). Teave kÔigist tuvastatud probleemidest on juba edastatud uutils arendajatele ja enamik turvaaukudest on kÔrvaldatud uutils 0.5-0.8 versioonides ilma liigse tÀhelepanuta ja paranduste seose mÀrkimiseta tuvastatud turvaaukudega.
Pakett rust-coreutils lisati vaikesĂ€tetena Ubuntu sĂŒgisesse vĂ€ljaandes 25.10, kuid arvestades auditi kĂ€igus tuvastatud probleeme, on LTS haru Ubuntu 26.04-s tagasi toodud tööriistad cp, mv ja rm GNU Coreutils komplektist. MĂ€rgitakse, et 22. aprilli seisuga jÀÀb nendes tööriistades 8 tuntud vĂ”idusĂ”idutingimust parandamata. ĂlejÀÀnud tööriistad on seotud rust-coreutils 0.8.0 vĂ€ljaandega. Ubuntu 26.10-s kavatsevad arendajad tĂ€ielikult ĂŒle minna rust-coreutils-ile.
SĂŒsteemi tööriistade turvaaugud on ohtlikud, kuna neid kasutatakse root Ă”igustega kĂ€ivitatavates skriptides. NĂ€iteks vĂ€ljaandes uutils coreutils 0.3.0 kĂ”rvaldatud turvaauk rm tööriistas vĂ”idi kasutada igapĂ€evaste kĂ€ivituste kĂ€igus cron skriptist /etc/cron.daily/apport, mis toimub root Ă”igustes ja rekursiivselt kustutab kausta /var/crash sisu, mis on kirjutamiseks avatud kĂ”igile sĂŒsteemi kasutajatele.
Esimese aruande kriitiliseks mÀrgitud turvaaukude seas:
- Chroot utiliidi nĂ”rk koht, mis on pĂ”hjustatud parameetri ââuserspecâ töötlemisest pĂ€rast chroot() kutsumist, kuid enne Ă”iguste tĂŒhistamist. Glibc sĂŒsteemides nime lahendamine getpwnam() funktsiooni kaudu toob kaasa faili /etc/nsswitch.conf lugemise, mida rakendatakse NSS (Nimi Teenuse LĂŒliti) kaudu, ja seal mÀÀratletud teekide dĂŒnaamilise laadimise NSS moodulitega (libnss_*.so.2). Kuna enne NSS-i töötlemist kutsutakse chroot() faili /etc/nsswitch.conf laaditakse suhtes uue juure alla, kuid NSS-teegid laaditakse enne Ă”iguste tĂŒhistamist. Kui kasutajal on kirjutamisĂ”igus uuele juurele, vĂ”ib ta sisestada oma NSS-teegid ja saavutada koodi tĂ€itmise root-Ă”igustega.
- Faili juurdepÀÀsuĂ”iguste muutmine nimega toru (FIFO) loomise tĂ”rke korral mkfifo utiliidis â kui olemasolev fail on argumendina antud, tagastab mkfifo vea, kuid ei lĂ”petada tĂ”rget, vaid kutsub set_permissions() ja muudab olemasoleva faili juurdepÀÀsuĂ”igusi. Arvestades umask 022, vĂ”imaldab nĂ”rk koht muuta faili juurdepÀÀsuĂ”igusi 644 (rw-r--r--) ja pÀÀse juurde failidele, mille lugemine polnud lubatud.
- Utiliidi chmod ââpreserve-rootâ piirangute mööda hiilimine, mis keelavad rekursiivsed toimingud failisĂŒsteemi juure suhtes. NĂ”rk koht (CVE-2026-35338) tuleneb sellest, et koodis kontrolliti ainult tĂ€pset vastavust teele â/â ja failitee kanoniseerimist ei tehtud. Kontrolli mööda hiilimiseks piisab tee kasutamisest kujul â/../â vĂ”i sĂŒmboolset linki juurele. NĂ”rk koht on ohtlik sellega, et sĂŒsteemiskripti, mis kutsub chmod kĂ€sku, sisse oma tee sisestamine vĂ”imaldab rekursiivset juurdepÀÀsu Ă”iguslikku muutmist kĂ”igile failidele failisĂŒsteemis.
- Utiliidis rm lubati mis tahes lĂŒhendite töötlemine valikust ââno-preserve-rootâ (âânâ, âânoâ, ââno-pâ, ââno-presâ jne) rekursiivse toimingu keeldumise vĂ€ljalĂŒlitamiseks juurega (nt vĂ”ib olla antud ârm -rf ân /â ja kogemata kustutada kĂ”ik andmed. GNU Coreutils-s sarnased lĂŒhendatud valikud on keelatud.
- Utiliidi rm ââpreserve-rootâ piirangute mööda hiilimine, mis keelab rekursiivsed toimingud failisĂŒsteemi juure suhtes, sĂŒmboolse lingi asenduse kaudu â/â.
- Puuduliku kaitse tĂ”ttu kataloogide osas, mis algavad punktiga. NĂ€iteks, kui kĂ€ivitada ârm -rf .â, anname utiliidile vea, kuid ârm -rf ./â vĂ”i ârm -rf .///â puhul kustutab see vaikselt praeguse katalooge.
- KĂ€skluse kill parameetrite analĂŒĂŒsi viga vĂ”imaldab saata signaali kĂ”igile sĂŒsteemi protsessidele, kui protsessi ID on «-1» (kill -1).
Muude osas kuuluvad enamik haavatavusi TOCTOU (Time-Of-Check-To-Time-Of-Use) klassi, mis tĂ€hendab oleku vĂ”istluse olemasolu, mis vĂ”imaldab andmeid muuta info kehtivuse kontrollimise jĂ€rgsel ajal, kuid enne nende kasutamiseks mĂ”eldud toimingu tĂ€itmist, nĂ€iteks vahetada fail sĂŒmboolse lingiga kontrollimise lĂ”petamise ja toimingu alustamise vahel. Root Ă”igustega kĂ€ivitatud sĂŒsteemiskripte kasutades, vĂ”imaldavad sellised haavatavused kopeerida vĂ”i ĂŒle kirjutada suvalisi faile.
Allikas: opennet.ru
