Sårbarhet i sudo som tillåter privilegieeskalering vid användning av specifika regler

I verktyget sudo, används för att organisera exekveringen av kommandon på uppdrag av andra användare, identifieras sårbarhet (CVE-2019-14287), som låter dig utföra kommandon med root-rättigheter, om det finns regler i sudoers-inställningarna där det i kontrollsektionen för användar-ID efter det tillåtande nyckelordet "ALL" finns ett uttryckligt förbud mot att köra med roträttigheter ("... (ALLA, !rot) ..." ). Sårbarheten visas inte i standardkonfigurationer i distributioner.

Om sudoers har giltiga, men extremt sällsynta i praktiken, regler som tillåter exekvering av ett visst kommando under UID för någon annan användare än root, kan en angripare som har behörighet att utföra detta kommando kringgå den etablerade begränsningen och utföra kommandot med roträttigheter. För att kringgå begränsningen, försök bara att utföra kommandot som anges i inställningarna med UID "-1" eller "4294967295", vilket kommer att leda till att det körs med UID 0.

Till exempel, om det finns en regel i inställningarna som ger vilken användare som helst rätt att köra programmet /usr/bin/id under valfritt UID:

myhost ALL = (ALLA, !root) /usr/bin/id

eller ett alternativ som endast tillåter exekvering för en specifik användarbob:

myhost bob = (ALLA, !root) /usr/bin/id

Användaren kan köra "sudo -u '#-1' id" och verktyget /usr/bin/id kommer att startas som root, trots det explicita förbudet i inställningarna. Problemet orsakas av att man förbiser specialvärdena "-1" eller "4294967295", som inte leder till en ändring i UID, men eftersom sudo själv redan körs som root, utan att ändra UID, är målkommandot också lanseras med root-rättigheter.

I SUSE- och openSUSE-distributioner, utan att ange "NOPASSWD" i regeln, finns det en sårbarhet inte utnyttjas, eftersom i sudoers läget "Defaults targetpw" är aktiverat som standard, vilket kontrollerar UID mot lösenordsdatabasen och uppmanar dig att ange målanvändarens lösenord. För sådana system kan en attack endast utföras om det finns regler av formen:

myhost ALL = (ALLA, !root) NOPASSWD: /usr/bin/id

Problem fixat i release Sudo 1.8.28. Fixeringen finns också tillgänglig i formuläret lappa. I distributionspaket har sårbarheten redan åtgärdats Debian, Arch Linux, SUSE/openSUSE, ubuntu, Gentoo и FreeBSD. I skrivande stund är problemet fortfarande olöst RHEL и fedora. Sårbarheten identifierades av säkerhetsforskare från Apple.

Källa: opennet.ru

Lägg en kommentar