Nel toolkit Flatpak, progettato per creare pacchetti autonomi, non legati a specifiche distribuzioni Linux e isolati dal resto del sistema, è stata scoperta una vulnerabilità (CVE-2024-32462). Questa vulnerabilità consente a un'applicazione malevola o compromessa, distribuita in un pacchetto flatpak, di eludere il regime di isolamento sandbox e accedere ai file nel sistema principale. Il problema si manifesta solo nei pacchetti che utilizzano i portali Freedesktop (xdg-desktop-portal), impiegati per organizzare l'accesso alle risorse dell'ambiente utente da applicazioni isolate. La vulnerabilità è stata risolta negli aggiornamenti correttivi di flatpak 1.15.8, 1.14.6, 1.12.9 e 1.10.9. È stata inoltre proposta una soluzione di protezione nelle versioni di xdg-desktop-portal 1.16.1 e 1.18.4.
Grazie a questa vulnerabilità, un'applicazione in un ambiente isolato può utilizzare l'interfaccia xdg-desktop-portal per creare un file «.desktop» con il comando di avvio dell'applicazione flatpak, consentendo di accedere ai file del sistema principale. Per uscire dall'ambiente isolato, vengono utilizzate manovre con il parametro «—command», impiegato per passare il nome del programma contenuto nel pacchetto flatpak da avviare in un ambiente isolato. Per configurare l'ambiente isolato, flatpak chiama l'utilità bwrap passando il nome del programma specificato. Ad esempio, per eseguire l'utilità ls in un ambiente isolato del pacchetto, si può utilizzare la sintassi «flatpak run —command=ls org.gnome.gedit», che porterà all'esecuzione di «bwrap ls».
Il succo della vulnerabilità è che se il nome del programma inizia con i caratteri «—», verrà interpretato dall'utilità bwrap come un'opzione propria. Ad esempio, eseguire «flatpak run —command=—bind org.gnome.gedit / /host ls -l /host» porterà all'esecuzione di «bwrap —bind / /host ls -l /host», cioè il nome «—bind» sarà elaborato non come il nome dell'applicazione da avviare, ma come un'opzione di bwrap.
La vulnerabilità è aggravata dal fatto che l'interfaccia D-Bus «org.freedesktop.portal.Background.RequestBackground» consente a un'applicazione del pacchetto Flatpak di specificare un comando da eseguire tramite «flatpak run —command», anche uno che inizia con il simbolo «—». Si presumeva che il passaggio di comandi qualsiasi non fosse pericoloso, dato che sarebbero stati eseguiti in un ambiente isolato dal pacchetto. Tuttavia, non si è tenuto conto che i comandi che iniziano con «—» sarebbero stati interpretati come opzioni dall'utilità bwrap. Di conseguenza, l'interfaccia xdg-desktop-portal può essere utilizzata per creare un file «.desktop» con un comando che sfrutta la vulnerabilità.
Fonte: opennet.ru
