Errori gravi di escalation dei privilegi rilevati nel gestore di pacchetti di Linux Snap

Errori gravi di escalation dei privilegi rilevati nel gestore di pacchetti di Linux Snap
Gli esperti hanno scoperto una vulnerabilità facilmente sfruttabile in Snap, un sistema globale di pacchettizzazione e distribuzione di applicazioni progettato per Ubuntu ma disponibile su molte distribuzioni Linux. Il difetto consente a un utente con privilegi bassi di eseguire codice dannoso come root, che è l’account amministrativo più alto in Linux.
La vulnerabilità, denominata CVE-2021-44731, fa parte di una serie di bug che i ricercatori Qualys hanno scoperto in diversi componenti Linux durante la loro indagine sulla sicurezza di Snap. Quest’ultimo, insieme all’altro, chiamato CVE-2021-44730, si trova in snap-confine, lo strumento responsabile della creazione di sandbox per l’app Snap.
Cos’è Snap?
Snap è un gestore di pacchetti per Linux sviluppato da Canonical, dietro la popolare distribuzione desktop e server di Ubuntu. Ti consente di impacchettare e distribuire applicazioni standalone chiamate “snap” che vengono eseguite all’interno di un contenitore limitato, fornendo un livello di sicurezza configurabile.
Controlla anche:
Essendo un’applicazione standalone, Snap non ha dipendenze esterne, il che gli consente di essere multipiattaforma e distribuito su più piattaforme. Tradizionalmente, tutte le principali distribuzioni Linux mantengono il proprio repository e il proprio software manager. Debian ha DEB, Ubuntu ha PPA, Fedora e Red Hat ha RPM, Arch Linux ha Pacman e così via. Tutti questi sistemi scaricano il pacchetto richiesto insieme a tutte le altre dipendenze come pacchetti separati. Gli snap, d’altra parte, sono in bundle con tutte le dipendenze di cui hai bisogno, rendendoli distribuibili a livello globale su tutti i sistemi Linux dotati di Snap.
Snap viene fornito per impostazione predefinita su Ubuntu e molte distribuzioni Linux ed è disponibile come opzione su molte altre distribuzioni, inclusa la principale. Viene utilizzato per distribuire non solo applicazioni desktop ma anche cloud e IoT.
Snap Confinement – o Quarantine – ha tre livelli di sicurezza, con la modalità Strict utilizzata dalla maggior parte delle app. In questa modalità, le app devono richiedere l’accesso a file, altri processi o alla rete. Questo non è diverso dal modello sandboxing dell’app e dalle autorizzazioni dei sistemi operativi mobili come Android.
Poiché il sandboxing delle applicazioni è una delle caratteristiche principali di Snap, qualsiasi vulnerabilità che ti permetta di sfuggire a questo isolamento e prendere il controllo del sistema host è considerata estremamente pericolosa.
Errori di escalation dei privilegi
I ricercatori di Qualys hanno soprannominato la loro vulnerabilità limitata “Oh Snap! More Lemmings” perché assomiglia a un altro fulmine, scoperto nel 2019 chiamato Dirty Sock. Dopo Dirty Sock, Snap è stato sottoposto a controlli di sicurezza approfonditi dal team di sicurezza di SUSE ed è generalmente programmato in modo molto difensivo, sfruttando diverse funzionalità di sicurezza di base. Come i profili AppArmor, i filtri seccomp e gli spazi dei nomi.
“Abbiamo quasi abbandonato il nostro audit dopo pochi giorni”, hanno affermato i ricercatori Qualys nel loro rapporto, aggiungendo che “una vulnerabilità limitata (soprattutto nell’installazione predefinita di Ubuntu) era estremamente difficile da rilevare e sfruttare”.
Tuttavia, il team ha notato alcuni piccoli difetti e ha deciso di andare avanti. Ciò ha portato alla scoperta di due vulnerabilità di escalation dei privilegi: CVE-2021-44730, un attacco hardlink che può essere utilizzato solo in configurazioni non virtuali, ovvero quando fs.protected_hardlinks del kernel è 0; e CVE-2021-44731, che è uno stato di gara che può essere utilizzato su installazioni desktop Ubuntu virtuali e installazioni semi-virtuali di Ubuntu Server.
“Questo race case apre un mondo di possibilità: all’interno dello spazio dei nomi mount di snap (che possiamo inserire tramite snap-confine stesso), possiamo creare una directory scrivibile a livello globale e non appiccica a /tmp, oppure possiamo montare qualsiasi altro directory che fa parte del file system in /tmp ”- affermano gli analisti di Qualysa. “Possiamo vincere in modo affidabile questo stato di gara osservando /tmp/snap.lxd con inotify, installando il nostro exploit e limitandoci alla stessa CPU con Sched_setaffinity() e abbassando la priorità di pianificazione snap-cline con setpriority() e schedule_schedule.( )” .
Durante l’analisi di questi difetti, i ricercatori di Qualys hanno anche scoperto bug nelle librerie e altri componenti correlati utilizzati da Snap: mount non autorizzati in libmount util-linuxa (CVE-2021-3996 e CVE-2021-3995); Valore di ritorno imprevisto da realpath() glibc (CVE-2021-3998); Buffer overflow/flow out tramite uno in getcwd() glibc (CVE-2021-3999); Ricorsività incontrollata in systemd-tmpfiles (CVE-2021-3997). Questi bug sono stati corretti in questi componenti all’inizio di quest’anno.
Ubuntu ha rilasciato patch per CVE-2021-44731 e CVE-2021-44730 per la maggior parte delle versioni di Linux che supporta, ad eccezione di ESM 16.04 (Extended Security Maintenance), che è ancora in attesa di patch. Entrambe le vulnerabilità sono classificate come molto pericolose.
Fonte: OSC
.