Vulnerabilità in OverlayFS che consente l'escalation dei privilegi

È stata identificata una vulnerabilità nel kernel Linux nell'implementazione del file system OverlayFS (CVE-2023-0386), che può essere utilizzato per ottenere l'accesso root su sistemi su cui è installato il sottosistema FUSE e consentire il montaggio di partizioni OverlayFS da parte di un utente non privilegiato utente (a partire dal kernel Linux 5.11 con l'inclusione dello spazio dei nomi utente senza privilegi). Il problema è stato risolto nel ramo del kernel 6.2. La pubblicazione degli aggiornamenti dei pacchetti nelle distribuzioni può essere monitorata nelle pagine: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

L'attacco viene eseguito copiando i file con flag setgid/setuid da una partizione montata in modalità nosuid a una partizione OverlayFS che ha un livello associato alla partizione che consente l'esecuzione dei file suid. La vulnerabilità è simile al problema CVE-2021-3847 identificato nel 2021, ma differisce per i requisiti di sfruttamento inferiori: il vecchio problema richiedeva la manipolazione di xattrs, che è limitato all'utilizzo degli spazi dei nomi utente (user namespace) e il nuovo problema utilizza bit setgid /setuid che non sono gestiti in modo specifico nello spazio dei nomi utente.

Algoritmo di attacco:

  • Con l'aiuto del sottosistema FUSE, viene montato un file system, in cui è presente un file eseguibile di proprietà dell'utente root con i flag setuid / setgid, a disposizione di tutti gli utenti per la scrittura. Durante il montaggio, FUSE imposta la modalità su "nosuid".
  • Annulla la condivisione degli spazi dei nomi utente e dei punti di montaggio (spazio dei nomi utente/montaggio).
  • OverlayFS è montato con il FS precedentemente creato in FUSE come livello inferiore e livello superiore basato sulla directory scrivibile. La directory di livello superiore deve trovarsi in un file system che non utilizza il flag "nosuid" durante il montaggio.
  • Per un file suid nella partizione FUSE, l'utility touch cambia l'ora di modifica, che porta alla sua copia nel livello superiore di OverlayFS.
  • Durante la copia, il kernel non rimuove i flag setgid/setuid, il che fa apparire il file su una partizione che può essere elaborata da setgid/setuid.
  • Per ottenere i diritti di root, è sufficiente eseguire il file con i flag setgid/setuid dalla directory collegata al livello superiore di OverlayFS.

Inoltre, possiamo notare la divulgazione da parte dei ricercatori del team di Google Project Zero di informazioni su tre vulnerabilità che sono state corrette nel ramo principale del kernel Linux 5.15, ma non sono state trasferite ai pacchetti del kernel da RHEL 8.x/9.x e CentOS flusso 9.

  • CVE-2023-1252 - Accesso a un'area di memoria già liberata nella struttura ovl_aio_req durante l'esecuzione simultanea di più operazioni in OverlayFS distribuito sopra il file system Ext4. Potenzialmente, la vulnerabilità ti consente di aumentare i tuoi privilegi nel sistema.
  • CVE-2023-0590 - Riferimento a un'area di memoria già liberata nella funzione qdisc_graft(). Si presume che l'operazione sia limitata all'interruzione.
  • CVE-2023-1249 - Accesso all'area di memoria già liberata nel codice della voce coredump a causa della chiamata mmap_lock mancante in file_files_note. Si presume che l'operazione sia limitata all'interruzione.

Fonte: opennet.ru

Aggiungi un commento