Privilégium-szint emelés a polkit segítségével, avagy hogyan váljunk root felhasználóvá Linuxon egy 7 éves bug kihasználásával

Címkék
A few weeks ago, I found a privilege escalation vulnerability in polkit. I coordinated the disclosure of the vulnerability with the polkit maintainers and with Red Hat’s security team. It was publicly disclosed, the fix was released on June 3, 2021, and it was assigned CVE-2021-3560.

Videó:

Részletek a GitHub blogbejegyzésében.

Hozzászólások

Meg jo hogy nincs polkit a gepemen.

I hate myself, because I'm not open-source.

Szerkesztve: 2021. 06. 10., cs – 22:16

Egy rendszer biztonsága csupán attól függ, hogy aki használja, mennyire ért hozzá. És itt most nem a felhasználói szintre gondolok, hanem a rendszer ismeretére.
Szerintem ha valaki elkezd a rendszer bugyraiban turkálni, csodákra bukkan, mint egy mélytengeri merülésnél.

Ez a bug mekkora dejavu erre: https://lists.freedesktop.org/archives/systemd-devel/2014-April/018876…

Ugyanez a retardált megoldás, van egy lényegében aszinkron üzenetküldés, a fogadó fél az üzenet feldolgozása során ki akarja deríteni ki volt a feladó, de ez csak akkor sikerül ha a feladó még a vonalban van. Komolyan meglepett, hogy ezt nem Lennart követte el, pedig ez tipikusan az ő stílusa.

Régóta vágyok én, az androidok mezonkincsére már!

Az általad idézett levél egy tipikus systemd-s gyöngyszem. Van valami gebasz a systemd háza táján, máris jön egy "megoldási" javaslat, hogy "There is ongoing work to fix the kernel[...]". Avagy "baj van velem, hát javítsuk meg a világot". Ez annyira, de annyira systemd. =(

Szerkesztve: 2021. 06. 11., p – 11:22

TLDR: van egy metódus a DBus/PolKit környékén, ami megnézi, hogy a hívónak van-e joga adott művelethez, és ha az hibával elszáll, akkor engedélyezi a műveletet. Szóval csak meg kell kérni a DBus-t, hogy hozzon létre egy root jogú felhasználót, és a saját processzünk kilövésével elő kell idézni egy hibát a megfelelő pillanatban.

Ez sokkal nehezebben fordulna elő, ha exceptiont dobnának :).

De eleve az a baj, hogy a Linux faék egyszerűségű jogosultságmodelljét felváltja egy ilyen bonyolult izé.