Compania Qualys ka zbuluar një dobësi (CVE-2026-3888) në organizimin e punës së lidhjes snap-confine dhe systemd-tmpfiles në Ubuntu, e cila lejon një përdorues jo i privilegjuar të fitojë qasje root në sistem. Problemi shfaqet në Ubuntu në konfigurimin e paracaktuar që nga versioni 24.04. Në Ubuntu 16.04-22.04, dobësia mund të shfrytëzohet në konfigurime jo standarde që imitojnë sjelljen e versioneve më të reja të distribucionit. Në Ubuntu, rregullimi është i disponueshëm në azhurnimin e paketës snapd të djeshëm. Problemi në snapd është eliminuar në azhurnimin 2.75.
Dobësia ndodh si rezultat i ndërveprimit të papërshtatshëm të utilitarëve snap-confine dhe systemd-tmpfiles, të kryera me privilegje të larta. Utilitari snap-confine krijon një ambient sandbox për ekzekutimin e aplikacioneve snap, ndërsa systemd-tmpfiles kryen pastrimin automatizuar të skedarëve dhe dosjeve të përkohshme. Sipas parazgjedhjes, utilitari systemd-tmpfiles është i konfiguruar për të fshirë të gjitha skedarët dhe dosjet e vjetra në /tmp, të cilat mund të përdoren nga sulmuesi për të zëvendësuar dosjen /tmp/.snap në momentin pas fshirjes nga utilitari systemd-tmpfiles, por para rindërtimit nga ekipi snap-confine.
Sulmi konsiston në pritjen e nisjes së procesit të pastrimit të skedarëve të përkohshëm, zëvendësimin e dosjes /tmp/.snap pas fshirjes së saj dhe vendosjen e një kopjeje të modifikuar të bibliotekave në /tmp/.snap/usr/lib/x86_64-linux-gnu.exchange. Sulmuesit mund t'u duhen disa ditë për të pritur nisjen e systemd-tmpfiles, pasi në Ubuntu 24.04 procesi i pastrimit nis çdo 10 ditë, ndërsa në versione më të reja çdo 30 ditë. Pas zëvendësimit të dosjes, sulmuesi arrin të inicializojë një ambient të ri sandbox përmes snap-confine.
Gjatë formimit të përmbajtjes së ambientit sandbox në dosjen përkohshme /tmp/.snap, sulmuesi pret momentin e duhur dhe rinomëron /tmp/.snap/usr/lib/x86_64-linux-gnu.exchange në /tmp/.snap/usr/lib/x86_64-linux-gnu, duke zëvendësuar kështu bibliotekat dhe duke siguruar montimin e tyre me bind të drejtat root. Kështu, sulmuesi merr kontrollin mbi bibliotekat e ndara dhe ngarkuesin ld.so që ekzekutohen në ambientin sandbox snap, dhe mund të arrijë ekzekutimin e kodit të rastësishëm me privilegje root përmes nisjes së çdo programi suid, në të cilin aplikohet lidhja dinamike.
Duke aksesit root në një mjedis sandbox të izoluar përmes AppArmor dhe filtrit të sistemthirrjeve mbi bazën e seccomp, një sulmues mund të kopjojë /bin/bash në katalogun /var/snap/$SNAP/common/ dhe t'i japë atij të drejta "04755" (suid root). Megjithëse të drejtat ndryshohen brenda mjedisit sandbox, skedari me të drejtat e ndryshuara është i disponueshëm gjithashtu në sistemin kryesor, prandaj për të marrë akses të plotë root mjafton të ekzekutohet /var/snap//common/bash nga një përdorues i zakonshëm pa privilegje nga mjedisi standard i sistemit.
Gjatësisht u zbulua një dobësi në mjetin uutils coreutils (Rust Coreutils), një alternativë e paketës GNU Coreutils, e shkruar në gjuhën Rust. Dobësia lejon që një përdorues pa privilegje të fitojë të drejtat root në sistem. Problemi u identifikua gjatë procesit të rishikimit të ndryshimeve në Ubuntu 25.10 dhe u zgjidh në mënyrë anashkalimi para publikimit të Ubuntu 25.10 përmes dorëzimit të /usr/bin/gnurm në vend të uutils rm. Në paketën uutils, problemi u zgjidh në publikimin e uutils coreutils 0.3.0, pa shënim në listën e ndryshimeve për zgjidhjen e dobësisë (u caktua se në rm, du, chmod dhe chgrp ishte implementuar një metodë e sigurt për anashkalimin e rrugëve).
Problemi është shkaktuar nga një gjendje garash në utilitarin "rm", duke lejuar që një përdorues lokal të zëvendësojë përmbajtjen e një katalogu me një lidhje simbolike gjatë heqjes së një skedari nën kontrollin e përdoruesit nga procesi "rm" me të drejta root. Ndër të tjera, dobësia mund të shpërdorohet gjatë renditjes përditshme nga një skriptë në cron /etc/cron.daily/apport, i cili ekzekutohet me të drejta root dhe përmban një heqje të përmbajtjes së katalogut /var/crash, të cilin të gjithë përdoruesit e sistemit mund ta shkruajnë.
Gjatë heqjes rekursive të katalogjeve, utilitari rm fillimisht kontrollon të gjithë katalogët dhe më pas i heq ata një nga një në rendin e kundërt, duke thirrur funksionin rmdir(). Nese arrin të zëvendësosh katalogun prind me një lidhje simbolike menjëherë pas kontrollit të këtij katalogu, por para kontrollit të katalogëve të fëmijëve brenda tij, operacioni do të çojë në heqjen e katalogut që tregon lidhja simbolike. Kështu është e mundur të arrihet jo vetëm heqja e çdo skedari në sistem, por edhe rritja e privilegjeve përmes heqjes së katalogut /tmp/snap-private-tmp/$SNAP/tmp/.snap për të zëvendësuar përmbajtjen e mjedisit sandbox të snap-paketës (metoda e fitimit të root është e ngjashme me dobësinë e parë).
Burimi: opennet.ru
