Vulnerabilità in systemd-coredump, che consente di determinare il contenuto della memoria dei programmi suid

È stata identificata una vulnerabilità (CVE-2022-4415) nel componente systemd-coredump, che elabora i file principali generati dopo il crash dei processi, consentendo a un utente locale non privilegiato di determinare il contenuto della memoria dei processi privilegiati in esecuzione con il flag suid root. Il problema di configurazione predefinita è stato confermato sulle distribuzioni openSUSE, Arch, Debian, Fedora e SLES.

La vulnerabilità è causata dalla mancata elaborazione corretta del parametro sysctl fs.suid_dumpable in systemd-coredump, che, se impostato sul valore predefinito 2, consente la generazione di core dump per i processi con il flag suid. Resta inteso che i file core dei processi suid scritti dal kernel devono avere diritti di accesso impostati per consentire la lettura solo da parte dell'utente root. L'utilità systemd-coredump, richiamata dal kernel per salvare i file core, memorizza il file core sotto l'ID root, ma fornisce inoltre accesso in lettura basato su ACL ai file core in base all'ID del proprietario che ha originariamente avviato il processo .

Questa funzionalità consente di scaricare i file principali indipendentemente dal fatto che il programma possa modificare l'ID utente ed essere eseguito con privilegi elevati. L'attacco si riduce al fatto che un utente può avviare un'applicazione suid e inviarle un segnale SIGSEGV, quindi caricare il contenuto di un file core, che include una fetta di memoria del processo durante una terminazione anomala.

Ad esempio, un utente può eseguire “/usr/bin/su” e in un altro terminale terminarne l’esecuzione con il comando “kill -s SIGSEGV `pidof su`”, dopodiché systemd-coredump salverà il file core nella directory /var /lib/systemd/ coredump, impostando un ACL che ne consenta la lettura da parte dell'utente corrente. Poiché l'utility suid 'su' legge il contenuto di /etc/shadow in memoria, un utente malintenzionato può accedere alle informazioni sugli hash delle password di tutti gli utenti del sistema. L'utilità sudo non è suscettibile agli attacchi poiché impedisce la generazione di file core tramite ulimit.

Secondo gli sviluppatori di systemd, la vulnerabilità si manifesta a partire dalla versione di systemd 247 (novembre 2020), ma secondo il ricercatore che ha individuato il problema, è interessata anche la versione 246. La vulnerabilità si manifesta se systemd è compilato con la libreria libacl (di default in tutte le distribuzioni popolari). La correzione è attualmente disponibile come patch. Puoi tenere traccia delle correzioni nelle distribuzioni nelle seguenti pagine: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Come soluzione alternativa alla sicurezza, puoi impostare sysctl fs.suid_dumpable su 0, che disabilita l'invio di dump al gestore systemd-coredump.

Fonte: opennet.ru

Aggiungi un commento