Errori gravi di escalation dei privilegi rilevati nel gestore di pacchetti di Linux Snap
![Serious privilege escalation errors found in Linux Snap's package manager](https://zmzme.com/wp-content/uploads/2022/02/sigmund-AxAPuIRWHGk-unsplash.jpg)
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
.