Vulnerabilità in Polkit che ti consente di aumentare i tuoi privilegi nel sistema

È stata identificata una vulnerabilità (CVE-2021-3560) nel componente Polkit, utilizzato nelle distribuzioni per consentire agli utenti senza privilegi di eseguire azioni che richiedono diritti di accesso elevati (ad esempio, montare un'unità USB), che consente a un utente locale di ottenere i diritti di root nel sistema. La vulnerabilità è stata risolta nella versione Polkit 0.119.

Il problema è presente dalla versione 0.113, ma molte distribuzioni, tra cui RHEL, Ubuntu, Debian e SUSE, hanno effettuato il backport delle funzionalità interessate in pacchetti basati su versioni precedenti di Polkit (le correzioni dei pacchetti sono già disponibili nelle distribuzioni).

Il problema si manifesta nella funzione polkit_system_bus_name_get_creds_sync(), che ottiene gli identificatori (uid e pid) del processo che richiede l'elevazione dei privilegi. Un processo viene identificato da Polkit assegnando un nome univoco in DBus, che viene poi utilizzato per verificare i privilegi. Se un processo si disconnette da dbus-daemon appena prima dell'avvio del gestore polkit_system_bus_name_get_creds_sync, il gestore riceve un codice di errore invece di un nome univoco.

La vulnerabilità è causata dal fatto che il codice di errore restituito non viene elaborato correttamente e la funzione polkit_system_bus_name_get_creds_sync() restituisce TRUE anziché FALSE, nonostante non sia in grado di abbinare il processo all'uid/pid e verificare i privilegi richiesti per il processo. Il codice da cui è stata chiamata la funzione polkit_system_bus_name_get_creds_sync() presuppone che il controllo abbia avuto esito positivo e che la richiesta di escalation dei privilegi provenga da root e non da un utente non privilegiato, il che rende possibile eseguire azioni privilegiate senza ulteriore autenticazione e verifica delle credenziali.

Fonte: opennet.ru

Aggiungi un commento