sudo root sebezhetőség, amely a Linux Mint-et és az Elementary OS-t érinti

A segédprogramban sudo, a parancsok végrehajtásának megszervezésére szolgál más felhasználók nevében, azonosított sebezhetőség (CVE-2019 18634-), amely lehetővé teszi a rendszerben a root felhasználó jogosultságának növelését. A probléma a sudo 1.7.1 kiadása óta csak az /etc/sudoers fájl „pwfeedback” opciójának használatakor jelentkezik, amely alapértelmezés szerint le van tiltva, de bizonyos disztribúciókban, például a Linux Mint és az Elementary OS esetében engedélyezett. A probléma a kiadásban javítva sudo 1.8.31, néhány órája jelent meg. A sérülékenység a terjesztési készletekben javítatlan marad.

A „pwfeedback” opció lehetővé teszi a „*” karakter megjelenítését minden beírt karakter után, amikor jelszót ír be. Mert Hibák A tgetpass.c fájlban definiált getln() függvény megvalósítása során előfordulhat, hogy a szabványos bemeneti adatfolyamon (stdin) átadott túl nagy jelszó bizonyos feltételek mellett nem fér bele a lefoglalt pufferbe, és felülírja a verem egyéb adatait. A túlcsordulás akkor fordul elő, ha rootként futtatja a sudo kódot.

A probléma lényege, hogy a ^U speciális karakter használatakor (sortörlés) a bevitel során és az írási művelet sikertelensége esetén a kimeneti „*” karakterek törléséért felelős kód visszaállítja az adatokat a rendelkezésre álló pufferméretre, de nem. vissza a mutatót a kezdeti érték aktuális pozíciójába a pufferben. A kiaknázást elősegítő másik tényező a „pwfeedback” mód automatikus letiltásának hiánya, amikor az adatok nem a terminálról, hanem a bemeneti adatfolyamon keresztül érkeznek (ez a hiba lehetővé teszi, hogy feltételeket teremtsen a rögzítési hiba előfordulásához, pl. egyirányú névtelen csatornák hiba történik, amikor egy olvasási csatorna végére próbál írni).

Mivel a támadó teljes mértékben felügyeli az adatok felülírását a veremben, nem nehéz olyan exploitot létrehozni, amely lehetővé teszi számára, hogy a root jogosultságait továbbítsa. A problémát bármely felhasználó kihasználhatja, függetlenül a sudo jogosultságoktól vagy a sudoerek felhasználóspecifikus beállításaitól. A probléma blokkolásához győződjön meg arról, hogy az /etc/sudoers fájlban nincs „pwfeedback” beállítás, és ha szükséges, tiltsa le (“Alapértelmezett !pwfeedback”). Ha ellenőrizni szeretné, hogy van-e probléma, futtassa a kódot:

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Jelszó: Szegmentációs hiba

Forrás: opennet.ru

Hozzászólás