Kompania Canonical publikoi rezultatet e para të auditit të pavarur të sigurisë së mjetit uutils coreutils (Rust Coreutils), e shkruar në gjuhën Rust dhe pjesërisht e përdorur në Ubuntu në vend të paketës GNU Coreutils. Auditi u krye nga kompania Zellic, e specializuar në analizën e dobësive në projektet e gjuhës Rust. Gjatë kontrollit u zbuluan 113 probleme me sigurinë.
Aktualisht është në dispozicion raporti (PDF, 156 faqe) me rezultatet e fazës së parë të auditit, e cila mbulon mjetet më të rëndësishme nga grupi uutils. Në fazën e parë, e cila u zhvillua nga dhjetori 2025 deri në janar 2026, u identifikuan 73 dobësi, nga të cilat 7 u shënjuan si kritike, 11 si të rrezikshme, 29 si me rrezik të mesëm dhe 26 si jo të rrezikshme.
Faza e dytë e auditit u zhvillua nga shkurti deri në mars dhe përfshinte utilitetet 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ë specifikuar (raporti pritet të publikohet më vonë). Informacioni për të gjitha problemet e zbuluara tashmë i është dhënë zhvilluesve të uutils dhe një pjesë e madhe e dobësive është eliminuar në versionet e uutils 0.5-0.8 pa zhurmë të tepërt dhe pa shënimin e lidhjes së korrigjimeve me eliminimin e dobësive.
Pakoja rust-coreutils u përfshi si parazgjedhje në versionin vjeshtor të Ubuntu 25.10, por duke marrë parasysh problemet e zbuluara gjatë auditit në degën LTS të Ubuntu 26.04, u rikthyen utilitetet cp, mv dhe rm nga paketa GNU Coreutils. Theksohet se në datën 22 prill, në këto utilitete mbeten të pa korrigjuara 8 gjendje garash të njohura. Utilitetet 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ë utilitat sistemor janë të rrezikshme sepse përdoren në skriptet që ekzekutohen me privilegje root. Për shembull, një dobësi e eliminuar në versionin uutils coreutils 0.3.0 në utilitarin rm mund të ishte shfrytëzuar gjatë ekzekutimit të përditshëm nga skripti i cron-it /etc/cron.daily/apport, i cili ekzekutohet me privilegje root dhe heq recursiv përmbajtjen e katalogut /var/crash, që është e shkruashme për të gjithë përdoruesit në sistem.
Mes dobësive të klasifikuara si kritike në raportin e parë:
- DobĂ«sia nĂ« utilitarin chroot, e shkaktuar nga trajtimi i opsionit "âuserspec" pas thirrjes sĂ« chroot(), por para rikthimit tĂ« privilegjeve. NĂ« sistemet me glibc, zgjidhja e emrave pĂ«rmes funksionit getpwnam() çon nĂ« leximin e skedarit /etc/nsswitch.conf, i cili pĂ«rdoret nĂ« NSS (Name Service Switch), dhe ngarkimin dinamik tĂ« bibliotekave tĂ« specifikuara nĂ« tĂ« me modulet NSS (libnss_*.so.2). Pasi qĂ« thirrja e chroot() ekzekutohet para pĂ«rpunimit tĂ« NSS, skedari /etc/nsswitch.conf ngarkohet nĂ« lidhje me rrĂ«njĂ«n e re, por bibliotekat NSS ngarkohen para rikthimit tĂ« privilegjeve. NĂ«se njĂ« pĂ«rdorues ka qasje pĂ«r tĂ« shkruar nĂ« rrĂ«njĂ«n e re, ai mund tĂ« vendosĂ« bibliotekat e tij NSS dhe tĂ« arritur ekzekutimin e kodit me privilegje root.
- Ndryshimi i tĂ« drejtave tĂ« aksesit nĂ« njĂ« skedar pas dĂ«shtimit tĂ« krijimit tĂ« njĂ« kanali tĂ« emĂ«ruar (FIFO) nga utilita mkfifo â nĂ«se jepni njĂ« skedar ekzistues si argument, mkfifo do tĂ« kthejĂ« njĂ« gabim, por nuk do tĂ« pĂ«rfundojĂ« me njĂ« dĂ«shtim tĂ« papritur, duke e ekzekutuar thirrjen set_permissions() dhe duke ndryshuar tĂ« drejtat e aksesit tĂ« skedarit ekzistues. Duke marrĂ« parasysh umask 022, vulnerabiliteti lejon ndryshimin e tĂ« drejtave tĂ« aksesit nĂ« skedarin 644 (rw-r--r--) dhe qasjen nĂ« skedarĂ«t pĂ«r tĂ« cilĂ«t nuk ishin lejuar tĂ« lire.
- Shkelja e kufizimeve «âpreserve-root» nĂ« utilitĂ«n chmod, e cila ndalon kryerjen e operacioneve rekursive nĂ« lidhje me rrĂ«njĂ«n e FS. Vulnerabiliteti (CVE-2026-35338) Ă«shtĂ« shkaktuar nga fakti qĂ« nĂ« kodin Ă«shtĂ« kontrolluar vetĂ«m pĂ«rputhja e saktĂ« e rrugĂ«s me «/» dhe nuk Ă«shtĂ« kryer kanonizimi i rrugĂ«s sĂ« skedarit. PĂ«r tĂ« anashkaluar kontrollin, mjafton tĂ« pĂ«rdorni njĂ« rrugĂ« tĂ« tillĂ« si «/../» ose njĂ« lidhje simbolike nĂ« rrĂ«njĂ«. Vulnerabiliteti Ă«shtĂ« i rrezikshĂ«m sepse, nĂ«se ka mundĂ«si qĂ« tĂ« futni rrugĂ«n tuaj nĂ« njĂ« skenar sistemik qĂ« thĂ«rret komandĂ«n chmod, mund tĂ« arrihet ndryshimi rekursiv i tĂ« drejtave tĂ« aksesit pĂ«r tĂ« gjithĂ« 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 rekursivĂ« me rrĂ«njĂ«n (pĂ«r shembull, mund tĂ« specifikohet «rm -rf ân /» dhe tĂ« fshihen tĂ« dhĂ«nat gabimisht. NĂ« GNU Coreutils, opsione tĂ« tilla tĂ« shkurtra janĂ« tĂ« ndaluara.
- TĂ« kalosh kufizimet «âpreserve-root» nĂ« utilitarin rm, tĂ« cilat ndalojnĂ« ekzekutimin e operacioneve rekursivĂ« nĂ« lidhje me rrĂ«njĂ«n e FS, pĂ«rmes zĂ«vendĂ«simit tĂ« lidhjes simbolike nĂ« «/».
- Mungesa e një mbrojtjeje të plotë nga specifikimi i katalogëve që fillojnë me pikë. Për shembull, duke ekzekutuar «rm -rf .» utilitari do të nxjerrë një gabim, por duke specifikuar «rm -rf ./» ose «rm -rf .///» do të fshijë pa zë katalogun aktuell.
- Një gabim në kodin e analizës së argumenteve të utilitarit kill lejon dërgimin e sinjalit të gjitha proceseve në sistem kur specifikohet identifikuesi i procesit «-1» (kill -1).
Në të gjitha rastet, pjesa më e madhe e dobësive i takon kategorisë TOCTOU (Koha e Kontrollit në Koha të Përdorimit), e cila nënkupton praninë e një garish të gjendjes, 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 mes përfundimit të verifikimit dhe fillimit të kryerjes së operacionit. Në kontekstin e përdorimit të mjeteve cp dhe mv në skriptet sistemike, të cilat ekzekutohen me të drejtat root, të tilla dobësi lejojnë kopjimin ose mbivendosjen e skedarëve të rastit.
Burimi: opennet.ru
