Sårbarhed i Polkit, der giver mulighed for at opnå forhøjede rettigheder i systemet

I komponenten Polkit, der bruges i distributioner til at muliggøre handlinger udført af ikke-privilegerede brugere, der kræver forhøjede rettigheder (for eksempel montering af USB-drev), er der opdaget en sårbarhed (CVE-2021-3560), der tillader en lokal bruger at opnå root-rettigheder i systemet. Sårbarheden er blevet rettet i version 0.119 af Polkit.

Problemet opstår fra version 0.113, men mange distributioner, herunder RHEL, Ubuntu, Debian og SUSE, har bagportet den sårbare funktionalitet til pakker baseret på ældre versioner af Polkit (rettelser er allerede tilgængelige i distributionerne).

Problemet opstår i funktionen polkit_system_bus_name_get_creds_sync(), der modtager identifikatorer (uid og pid) for den proces, der anmoder om forhøjede privilegier. Processen identificeres af Polkit gennem tildeling af et unikt navn i DBus, som derefter bruges til at kontrollere privilegierne. Hvis processen afbryder forbindelsen til dbus-daemon lige før håndteringen af polkit_system_bus_name_get_creds_sync startes, får håndteringen i stedet for det unikke navn en fejlkode.

Sårbarheden er forårsaget af, at den returnerede fejlkode ikke behandles korrekt, og funktionen polkit_system_bus_name_get_creds_sync() returnerer værdien TRUE i stedet for FALSE, selvom den ikke kunne tilknytte processen med uid/pid og kontrollere de anmodede privilegier for processen. Koden, der kaldte funktionen polkit_system_bus_name_get_creds_sync(), mener, at kontrollen er udført med succes, og anmodningen om forhøjede privilegier kom fra root og ikke fra en ikke-privilegeret bruger, hvilket giver mulighed for at udføre privilegerede handlinger uden yderligere autentificering og bekræftelse af beføjelser.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster