Sårbarhed i Polkit, der giver dig mulighed for at eskalere dine privilegier i systemet

En sårbarhed (CVE-2021-3560) er blevet identificeret i Polkit-komponenten, som bruges i distributioner for at tillade uprivilegerede brugere at udføre handlinger, der kræver forhøjede adgangsrettigheder (f.eks. montering af et USB-drev), hvilket giver en lokal bruger mulighed for at få root-rettigheder i systemet. Sårbarheden er rettet i Polkit version 0.119.

Problemet har været til stede siden udgivelse 0.113, men mange distributioner, inklusive RHEL, Ubuntu, Debian og SUSE, har backporteret den berørte funktionalitet til pakker baseret på ældre Polkit-udgivelser (pakkerettelser er allerede tilgængelige i distributionerne).

Problemet manifesterer sig i polkit_system_bus_name_get_creds_sync()-funktionen, som henter identifikatorerne (uid og pid) for processen, der anmoder om privilegieforhøjelse. En proces identificeres af Polkit ved at tildele et unikt navn i DBus, som derefter bruges til at verificere privilegier. Hvis en proces afbryder forbindelsen til dbus-daemon lige før polkit_system_bus_name_get_creds_sync handleren starter, modtager handleren en fejlkode i stedet for et unikt navn.

Sårbarheden er forårsaget af, at den returnerede fejlkode ikke er korrekt behandlet, og polkit_system_bus_name_get_creds_sync()-funktionen returnerer TRUE i stedet for FALSE, på trods af at den ikke er i stand til at matche processen med uid/pid og verificere de privilegier, der er anmodet om for processen. Koden, hvorfra polkit_system_bus_name_get_creds_sync()-funktionen blev kaldt, antager, at kontrollen var vellykket, og anmodningen om at eskalere privilegier kom fra root og ikke fra en uprivilegeret bruger, hvilket gør det muligt at udføre privilegerede handlinger uden yderligere godkendelse og verifikation af legitimationsoplysninger.

Kilde: opennet.ru

Tilføj en kommentar