Prieš kelias dienas tai pasklido žinia „Flatpak“ aptiktas pažeidžiamumas (sistema, skirta sukurti, platinti ir paleisti izoliuotas darbalaukio taikomųjų programų aplinkas Linux). Katalogas CVE-2024-32462, kartu su CWE-88 klasifikacija aptiktas pažeidžiamumas leidžiama pabėgti iš smėlio dėžės naudojant „RequestBackground“.
Šis pažeidžiamumas paveikia tam tikras konkrečias Flatpak versijas, o jo poveikis gali būti rimtas, nes specialiai sukurta programa gali vykdyti savavališką kodą už smėlio dėžės ribų, taip pakenkdama vartotojo informacijai.
Apie pažeidžiamumą CVE-2024-32462
Minima, kad pažeidžiamumas leidžia naudoti kenkėjišką ar pažeistą programą platinamas naudojant flatpak paketo formatą apėjimo izoliacijos režimas iš bandymų zonos ir pasiekti pagrindinius sistemos failus. Ši problema iškyla tik paketuose, kuriuose naudojami „Freedesktop“ portalai (xdg-desktop-portal), naudojami palengvinti prieigą prie vartotojo aplinkos išteklių iš atskirų programų.
Į org.freedesktop.portal.Background.RequestBackground portalo sąsają galima perduoti savavališką komandų eilutės sąsają iš „Flatpak“ programos. Paprastai tai saugu, nes galite nurodyti tik tokią komandą, kuri egzistuoja smėlio dėžės aplinkoje; bet kai sukurtas komandinės eilutės objektas konvertuojamas į –commandarguments ir programa gali pasiekti tą patį efektą, perduodama argumentus tiesiai į bwrapy, taip pasiekiama smėlio dėžės pabėgimas.
Sprendimas yra tai, kad Flatpak prieš pridedant užpuoliko nurodytą komandą naudoja argumentą –to bwrap, dėl kurio jis sustabdo apdorojimo parinktis. Argumentas – buvo palaikomas nuo „bubblewrap 0.3.0“, o visoms palaikomoms „Flatpak“ versijoms jau reikalinga bent ta „bubblewrap“ versija.
Šio pažeidžiamumo išnaudojimas leidžia programai smėlio dėžėje naudoti xdg-desktop-portal sąsają sukurti failą «.darbastalio» su komanda, kuri paleidžia programą iš flatpak, taip suteikiant prieigą prie failų pagrindinėje sistemoje.
Pažeidžiamumo, leidžiančio išvengti smėlio dėžės, esmė slypi argumentas – komandą de „flatpak“ bėgimas, kuri tikėjosi gauti komandą, kuri bus paleista nurodytoje „Flatpak“ programoje, kartu su kai kuriais pasirenkamais argumentais. Manipuliuojant parametru «– komandą«, kuris naudojamas perduoti programos pavadinimą, buvo galima perduoti pasirinkimo pavadinimą, kaip, pavyzdžiui -įpareigoti, ir tai buvo klaidingai interpretuota kaip bwrap parinktis, skirta paleisti nurodytą programą pakete izoliuotoje aplinkoje.
Praktinis to pavyzdys minėta, yra paleisti ls įrankį izoliuoto paketo aplinkoje, jūs naudojate kažką panašaus į šį:
"flatpak run --command=ls org.gnome.gedit"
Kuris vykdys:
"bwrap ...lots of stuff... --bind / /host ls -l /host".
Tokiu atveju pavadinimas „–bind“ nebus laikomas paleistinos programos pavadinimu, o veikiau bwrap parinktimi.
Iš esmės pažeidžiamumas slypi tame, kad jei programos pavadinimas prasideda simboliais «–«, bwrap paslaugų programa interpretuos ją kaip savo pasirinkimą. Iš pradžių komandų siuntimas tokiu būdu nebuvo laikomas pavojingu, nes jie veiktų izoliuotoje aplinkoje nuo pakuotės. Tačiau nebuvo atsižvelgta į tai, kad komandos, prasidedančios raide „–“, bwrap paslaugų programa interpretuos kaip parinktis. Dėl to xdg-desktop-portal sąsaja gali būti išnaudota kuriant ".desktop" failą su komanda, kuri išnaudoja šį pažeidžiamumą.
Argumentas – buvo palaikomas nuo 0.3.0 bubblewrap, o visoms palaikomoms Flatpak versijoms jau reikalinga bent ta bubblewrap versija. Minima, kad vienas iš sprendimų yra 1.18.4 versija xdg-desktop-portal nebeleidžia Flatpak programoms kurti naujų failų .desktop komandoms, kurios prasideda raide -.
Galiausiai verta paminėti, kad pažeidžiamumas buvo ištaisytas pataisytose Flatpak 1.15.8, 1.14.6, 1.12.9 ir 1.10.9 versijose. Be to, xdg-desktop-portal 1.16.1 ir 1.18.4 versijose buvo pasiūlytas saugos pataisymas.
Galite patikrinti turimą Flatpak versiją vykdydami šią komandą:
flatpak --version
Jei naudojate pažeidžiamą versiją arba norite atnaujinti savo Flatpak versiją, tiesiog vykdykite vieną iš šių komandų:
Ubuntu/Debian ir dariniai:
sudo apt upgrade flatpak
RHEL/Fedora ir dariniai:
sudo dnf upgrade flatpak
Arch Linux ir dariniai:
sudo pacman -Syu flatpak
Kakleliai domina sužinoti daugiau apie tai, galite patikrinti išsamią informaciją Šioje nuorodoje.