În instrumentarul Flatpak, destinat creării de pachete autonome, nelegat de distribuții Linux specifice și izolate de restul sistemului, a fost identificată o vulnerabilitate (CVE-2024-32462). Această vulnerabilitate permite unei aplicații malițioase sau compromise, livrate într-un pachet flatpak, să ocolească modul de izolare sandbox și să acceseze fișierele de pe sistemul principal. Problema apare doar în pachetele care folosesc portalurile Freedesktop (xdg-desktop-portal), utilizate pentru a organiza accesul la resursele mediului utilizator din aplicații izolate. Vulnerabilitatea a fost remediată în actualizările corective flatpak 1.15.8, 1.14.6, 1.12.9 și 1.10.9. De asemenea, un workaround pentru protecție a fost propus în versiunile xdg-desktop-portal 1.16.1 și 1.18.4.
Datorită vulnerabilității, o aplicație aflată în mediu izolat poate utiliza interfața xdg-desktop-portal pentru a crea un fișier „.desktop” cu comanda de lansare a aplicației din flatpak, permițând accesul la fișierele sistemului principal. Pentru a ieși din mediu izolat, sunt utilizate manipulații cu parametrul „—command”, folosit pentru a transmite numele programului, care se află în interiorul pachetului flatpak, și care trebuie lansat în mediu izolat. Pentru a configura mediu izolat, flatpak apelează utilitarul bwrap, oferindu-i numele specificat al programului. De exemplu, pentru a lansa utilitarul ls în mediu izolat al pachetului, se poate folosi construcția „flatpak run —command=ls org.gnome.gedit”, care va duce la lansarea „bwrap ls”.
Substanța vulnerabilității este aceea că, dacă numele programului începe cu simbolurile „—”, acesta va fi perceput de utilitarul bwrap ca o opțiune proprie. De exemplu, lansarea „flatpak run —command=—bind org.gnome.gedit / /host ls -l /host” va duce la executarea „bwrap —bind / /host ls -l /host”, adică numele „—bind” va fi tratat nu ca numele aplicației ce trebuie lansată, ci ca o opțiune bwrap.
Vulnerabilitatea este agravată de faptul că interfața D-Bus „org.freedesktop.portal.Background.RequestBackground” permite unei aplicații din pachetul Flatpak să specifice orice comandă pentru a fi executată prin „flatpak run —command”, inclusiv comenzile care încep cu simbolul „—”. Se presupunea că transmiterea unor astfel de comenzi nu este periculoasă, deoarece acestea vor fi executate într-un mediu izolat al pachetului. Însă nu s-a ținut cont de faptul că comenzile care încep cu „—” vor fi interpretate ca opțiuni de către utilitarul bwrap. Ca urmare, interfața xdg-desktop-portal poate fi utilizată pentru a crea un fișier „.desktop” cu o comandă ce exploatează vulnerabilitatea.
Sursa: opennet.ro
