Kompania Canonical publikoi rezultatet përfundimtare të auditit të pavarur të sigurisë për mjetin uutils coreutils (Rust Coreutils), i shkruar në gjuhën Rust dhe që përdoret pjesërisht në Ubuntu në vend të paketës GNU Coreutils. Auditi u krye nga kompania Zellic, e cila ka përvojë në analizimin e dobësive në projektet në gjuhën Rust. Gjatë kontrollit u identifikuan 113 probleme me sigurinë.
Aktualisht është e disponueshme një raport (PDF, 156 faqe) me rezultatet e fazës së parë të auditit, që përfshin mjetet më të rëndësishme nga grupi uutils. Faza e parë, e cila u zhvillua nga dhjetori 2025 deri në janar 2026, identifikoi 73 dobësi, prej të cilave 7 u shënua si kritike, 11 si të rrezikshme, 29 si të rrezikshme mesatarisht dhe 26 si të padëmshme.
Faza e dytë e auditit u zhvillua nga shkurti deri në mars dhe përfshiu mjetet dytësore, të cilat nuk u kontrolluan në fazën e parë. Në fazën e dytë u gjetën 40 dobësi, rreziku i të cilave ende nuk është detajuar (raporti pritet të publikohet më vonë). Informacioni rreth të gjitha problemeve të identifikuara është dorëzuar tashmë zhvilluesve të uutils dhe shumica e dobësive janë eliminuar në versionet e uutils 0.5-0.8 pa bujë të tepruar dhe shënimin e lidhjes së ndryshimeve me eliminimin e dobësive.
Paketa rust-coreutils u përfshi si standard në lëshimin e vjeshtës së Ubuntu 25.10, por duke marrë parasysh problemet e identifikuara gjatë auditit në degën LTS të Ubuntu 26.04, janë rikthyer mjetet cp, mv dhe rm nga grupi GNU Coreutils. Vlen të theksohet se deri më 22 prill, në këto mjete kanë mbetur të pa rregulluar 8 stanjacione të njohura të garës. Mjetet e tjera janë përdorur nga versioni rust-coreutils 0.8.0. Në Ubuntu 26.10, zhvilluesit planifikojnë të kalojnë plotësisht në rust-coreutils.
Dobësitë në mjetet sistemike janë të rrezikshme sepse ato përdoren në skriptet që ekzekutohen me të drejta root. Për shembull, dobësia e eliminuar në versionin uutils coreutils 0.3.0 në mjetin rm mund të ishte shfrytëzuar gjatë ekzekutimit të përditshëm nga skripti cron /etc/cron.daily/apport, i cili ekzekutohet me të drejta root dhe heq përmbajtjen e drejtorisë /var/crash, e cila mund të shkruhet nga të gjithë përdoruesit në sistem.
Mes dobësive të shënuara si kritike në raportin e parë:
- NjĂ« dobĂ«si nĂ« utilitarin chroot, e shkaktuar nga pĂ«rpunimi i opsionit "âuserspec" pas thirrjes sĂ« chroot(), por para ripĂ«rshtatjes sĂ« privilegjeve. NĂ« sistemet me glibc, zgjidhja e emrave pĂ«rmes funksionit getpwnam() çon nĂ« leximin e skedarit /etc/nsswitch.conf, qĂ« aplikohet nĂ« NSS (Name Service Switch), dhe ngarkimin dinamik tĂ« bibliotekave tĂ« pĂ«rmendura nĂ« tĂ« me modulat NSS (libnss_*.so.2). PavarĂ«sisht se deri nĂ« pĂ«rpunimin e NSS ekzekutohet thirrja chroot(), skedari /etc/nsswitch.conf ngarkohet nĂ« lidhje me rrĂ«njĂ«n e re, por bibliotekat NSS ngarkohen para ripĂ«rshtatjes sĂ« privilegjeve. NĂ«se pĂ«rdoruesi ka akses pĂ«r tĂ« shkruar nĂ« rrĂ«njĂ«n e re, ai mund tĂ« futĂ« bibliotekat e tij NSS dhe tĂ« arrijĂ« ekzekutimin e kodit me privilegje root.
- Ndryshimi i drejtave tĂ« aksesit ndaj skedarit pas dĂ«shtimit tĂ« krijimit tĂ« kanalit tĂ« emĂ«ruar (FIFO) nga utilitari mkfifo â nĂ«se specifikohet njĂ« skedar ekzistues si argument, mkfifo do tĂ« kthejĂ« njĂ« gabim, por nuk do ta mbyllĂ« nĂ« mĂ«nyrĂ« tĂ« papritur, pĂ«rkundrazi do tĂ« thĂ«rrasĂ« set_permissions() dhe do tĂ« ndryshojĂ« drejtimet e aksesit pĂ«r skedarin ekzistues. Duke marrĂ« parasysh umask 022, kjo dobĂ«si lejon ndryshimin e drejtave tĂ« aksesit pĂ«r skedarin nĂ« 644 (rw-r--r--) dhe marrjen e aksesit nĂ« skedarĂ« pĂ«r tĂ« cilĂ«t nuk ishte lejuar leximi.
- Shkurtimi i kufizimeve "âpreserve-root" nĂ« utilitarin chmod, qĂ« ndalojnĂ« ekzekutimin e operacioneve rekurzive nĂ« lidhje me rrĂ«njĂ«n e FS. DobĂ«sia (CVE-2026-35338) Ă«shtĂ« shkaktuar nga fakti se nĂ« kodin e saj Ă«shtĂ« kontrolluar vetĂ«m pĂ«rputhja e saktĂ« e rrugĂ«s me "\/" dhe nuk Ă«shtĂ« bĂ«rĂ« kanonizimi i rrugĂ«s sĂ« skedarit. PĂ«r tĂ« kaluar kontrollin mjafton tĂ« pĂ«rdoret njĂ« rrugĂ« si "\/..\/" ose njĂ« lidhje simbolike nĂ« rrĂ«njĂ«. DobĂ«sia Ă«shtĂ« e rrezikshme sepse, nĂ«se ka mundĂ«si pĂ«r tĂ« futur rrugĂ«n tĂ«nde nĂ« njĂ« skenar sistemik qĂ« thĂ«rret komandĂ«n chmod, mund tĂ« arrihet ndryshimi rekurziv i drejtave tĂ« aksesit pĂ«r tĂ« gjitha skedarĂ«t nĂ« FS.
- NĂ« utilitarin rm lejohej pĂ«rpunimi i çdo shkurtimi tĂ« opsionit "âno-preserve-root" ("ân", "âno", "âno-p", "âno-pres" etj.) pĂ«r tĂ« çaktivizuar mbrojtjen nga ekzekutimi i operacioneve rekurzive me rrĂ«njĂ«n (pĂ«r shembull, mund tĂ« specifikohet "rm -rf ân \/" dhe aksidentalisht tĂ« fshihen tĂ« gjitha tĂ« dhĂ«nat. NĂ« GNU Coreutils, opsionet si kĂ«to tĂ« shkurtuara janĂ« tĂ« ndaluara.
- Shkurtimi i kufizimeve "âpreserve-root" nĂ« utilitarin rm, qĂ« ndalojnĂ« ekzekutimin e operacioneve rekurzive nĂ« lidhje me rrĂ«njĂ«n e FS, pĂ«rmes vendosjes sĂ« njĂ« lidhjeje simbolike nĂ« "\/".
- Mungesa e mbrojtjes së plotë ndaj specifikimit të katalogëve që fillojnë me pikë. Për shembull, kur ekzekutohet "rm -rf .", utilitari do të tregojë një gabim, por kur specifikohet "rm -rf .\/" ose "rm -rf .\\\/", ai do të fshijë në heshtje katalogun e tanishëm.
- Një gabim në kodin e analizës së argumenteve të utilitarit kill mundëson dërgimin e sinjalit të të gjitha proceseve në sistem kur identifikatori i procesit është "-1" (kill -1).
Pjesa më e madhe e dobësive përfshihet në klasën TOCTOU (Koha e Kontrollit në Koha të Përdorimit), që nënkupton praninë e një garë, duke lejuar ndryshimin e të dhënave në momentin pas verifikimit të saktësisë së informacionit, por para se të kryhet operacioni me to, për shembull, zëvendësimi i një skedari me një lidhje simbolike në momentin midis përfundimit të kontrollit dhe fillimit të ekzekutimit të operacionit. Në kontekstin e përdorimit të utilitarëve cp dhe mv në skenaret sistemike, të ekzekutuara me të drejta root, dobësitë e tilla lejojnë kopjimin ose rikthimin e skedarëve të rastësishëm.
Burimi: opennet.ru
