Vulnerabilitat a Polkit que us permet augmentar els vostres privilegis al sistema

S'ha identificat una vulnerabilitat (CVE-2021-3560) al component Polkit, que s'utilitza en distribucions per permetre als usuaris sense privilegis realitzar accions que requereixen drets d'accés elevats (per exemple, muntar una unitat USB), que permet a un usuari local obtenir drets root al sistema. La vulnerabilitat s'ha solucionat a la versió 0.119 de Polkit.

El problema està present des de la versió 0.113, però moltes distribucions, com RHEL, Ubuntu, Debian i SUSE, han retroportat la funcionalitat afectada a paquets basats en versions anteriors de Polkit (les correccions de paquets ja estan disponibles a les distribucions).

El problema es manifesta a la funció polkit_system_bus_name_get_creds_sync(), que obté els identificadors (uid i pid) del procés que sol·licita l'elevació de privilegis. Polkit identifica un procés assignant un nom únic a DBus, que després s'utilitza per verificar els privilegis. Si un procés es desconnecta de dbus-daemon just abans que s'iniciï el controlador polkit_system_bus_name_get_creds_sync, el controlador rep un codi d'error en lloc d'un nom únic.

La vulnerabilitat és causada pel fet que el codi d'error retornat no es processa correctament i la funció polkit_system_bus_name_get_creds_sync() retorna TRUE en lloc de FALSE, tot i no poder fer coincidir el procés amb l'uid/pid i verificar els privilegis sol·licitats per al procés. El codi des del qual es va cridar la funció polkit_system_bus_name_get_creds_sync() suposa que la comprovació va ser correcta i que la sol·licitud d'escalada de privilegis prové de l'arrel i no d'un usuari sense privilegis, cosa que permet realitzar accions privilegiades sense autenticació addicional i verificació de credencials.

Font: opennet.ru

Afegeix comentari