Vulnerabilità in OverlayFS che consente di elevare i propri privilegi

Nel kernel Linux nella sua implementazione del file system OverlayFS è stata identificata una vulnerabilità (CVE-2023-0386) che può essere sfruttata per ottenere accesso root su sistemi in cui è installato il sottosistema FUSE e è consentito il montaggio di partizioni OverlayFS da parte di utenti non privilegiati (a partire dal kernel Linux 5.11 che include user namespace non privilegiati). Il problema è stato risolto nel ramo del kernel 6.2. È possibile tenere traccia della pubblicazione degli aggiornamenti dei pacchetti nelle distribuzioni sulle seguenti pagine: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

L'attacco viene effettuato copiando file con i flag setgid/setuid da una partizione montata in modalità nosuid, nella partizione OverlayFS, che ha uno strato associato a una partizione che consente l'esecuzione di file suid. La vulnerabilità è simile al problema CVE-2021-3847 identificato nel 2021, ma presenta requisiti di sfruttamento più bassi: nel problema precedente erano necessarie manipolazioni di xattrs, che sono limitate quando si utilizzano gli spazi dei nomi degli identificatori utente (user namespace), mentre nel nuovo problema si utilizzano i bit setgid/setuid, che non vengono trattati specificamente in user namespace.

Algoritmo per l'esecuzione dell'attacco:

  • Utilizzando il sottosistema FUSE viene montato un file system che contiene un file eseguibile appartenente all'utente root con flag setuid/setgid, accessibile in scrittura a tutti gli utenti. Durante il montaggio, FUSE imposta il flag «nosuid».
  • Vengono annullati (unshare) gli spazi dei nomi degli utenti e dei punti di montaggio (user/mount namespace).
  • Si monta OverlayFS specificando il file system precedentemente creato in FUSE come strato inferiore e uno strato superiore basato su una directory che consente la scrittura. La directory dello strato superiore deve essere collocata in un file system che non utilizza il flag «nosuid» durante il montaggio.
  • Per il file suid nella partizione FUSE, l'utilità touch modifica il timestamp, il che porta alla sua copia nello strato superiore di OverlayFS.
  • Durante la copia, il kernel non rimuove i flag setgid/setuid, il che porta alla creazione del file in una partizione che consente l'elaborazione di setgid/setuid.
  • Per ottenere i diritti root, è sufficiente eseguire il file con i flag setgid/setuid dalla directory allegata allo strato superiore di OverlayFS.

In aggiunta, si segnala la divulgazione da parte dei ricercatori del team Google Project Zero di tre vulnerabilità che sono state risolte nel ramo principale del kernel Linux 5.15, ma non sono state portate nei pacchetti kernel da RHEL 8.x/9.x e CentOS Stream 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 un file system Ext4. Potenzialmente, la vulnerabilità consente di aumentare i privilegi nel sistema.
  • CVE-2023-0590 - accesso a un'area di memoria già liberata nella funzione qdisc_graft(). Si presume che lo sfruttamento sia limitato a crash.
  • CVE-2023-1249 - accesso a un'area di memoria già liberata nel codice di scrittura coredump, risultante da una chiamata mmap_lock mancante in file_files_note. Si presume che lo sfruttamento sia limitato a crash.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster