Hrošč v Ubuntu omogoča ustvaritev administratorskega računa

Matej Huš

12. nov 2020 ob 21:36:04

V Linuxovi distribuciji Ubuntu je Kevin Backhouse odkril hrošča, ki navadnemu uporabniku omogočata eskalacijo privilegijev in ustvaritev računa z administratorskimi pravicami. Izraba ne zahteva nobenega posebnega računalniškega znanja, kaj šele programiranja. Ranljivost deluje le, če imamo dostop do lokalnega računa in grafičnega vmesnika, torej je ne moremo zlorabiti na strežnikih.

Prva ranljivost tiči v servisu accountsservice, ki upravlja z uporabniškimi računu v sistemu in ki komunicira z accounts-daemon. Ker accountsservice poišče datoteko .pam_environment, ga je možno zrušiti z vzpostavitvijo bližnjice, ki v to ime poveže neskončno dolgo datoteko ničel (/dev/zero). Če potem pošljemo accounts-daemonu pošljemo SIGSEGV, ga lahko tudi kot navadni uporabnik zrušimo (to ne bi smelo biti možno). Drugi hrošč tiči v GNOME Display Managerju (gdm3), ki med drugim ob sveži namestitvi ustvari prve račune - in prvi uporabniški računa mora biti administratorski. Ključ je v tem, da gdm3 to omogoči le, če na računalniku ni nobenega računa, kar je tipično ob prvi namestitvi. To pa izve tako, da vpraša accounts-daemon. A ker smo tega zrušili, ga ne more vprašati. Poizvedba spodleti, privzeta vrednost v gdm3 pa je false (računov ni). In tako gdm3 odpre čarovnika za ustvaritev administratorskega računa.