
V utilitě sudo
byla objevena zranitelnost, která za určitých okolností dovoluje neprivilegovaným uživatelům spouštět příkazy s právy uživatele root. Chyba je označena jako CVE-2019–18634 a objevil ji Joe Vennix ze společnosti Apple. Problém se týká některých linuxových distribucí a také macOS.
Chyba může být zneužita, jen pokud má utilita zapnutou funkci pwfeedback
, která zobrazuje hvězdičky, když uživatel zadává heslo. To není výchozí stav ve většině distribucí, ale třeba Linux Mint či Elementary OS to takhle po instalaci zapnuté mají. V ostatních systémech by musel vlastnost zapnout správce.
Objevená chyba je klasický buffer overflow a do standardního vstupu utility stačí poslat dostatečně dlouhý řetězec. Chyba spočívá především v tom, že by utilita měla pwfeedback
ignorovat při načítání hesla ze standardního vstupu. Zároveň ale není správně napsána práce se zásobníkem, takže se při vyvolání chyby sice resetuje zbývající délka, ale už ne ukazatel pozice. Výsledkem je, že funkce getln()
zapíše data mimo vyhrazený prostor.
Chyba je opravena ve verzi 1.8.31, ale zneužitelná už nebyla od verze 1.8.26. Jako oprava také poslouží vypnutí vlastnosti pomocí volby Defaults !pwfeedback
v /etc/sudoers
. Naopak nestačí uživatele vyjmout ze skupiny schopné používat sudo
.
Připomeňme, že v sudo
byla nedávno objevena jiná chyba, která také umožňovala eskalaci privilegií. Uživateli k tomu stačilo nastavit user ID na -1
nebo 4294967295
.
(Zdroj: Security Affairs)