A segédprogramban , amelyet arra használnak, hogy más felhasználók nevében parancsokat hajtsanak végre, (), amely lehetővé teszi, hogy parancsokat hajtsanak végre root jogosultsággal, ha a sudoers fájl beállításaiban a felhasználói azonosító ellenőrzési részében egy kifejezett tilalmat helyeznek el a root jogosultságokkal való végrehajtásra a „ALL, !root” engedélyező kulcsszó után. Az alapértelmezett konfigurációkban a disztribúciókban ez a sebezhetőség nem jelentkezik.
Ha a sudoers fájlban megengedett, de gyakorlatban ritkán előforduló szabályok vannak, amelyek lehetővé teszik egy adott parancs végrehajtását bármely felhasználó UID-azonosítója alatt, a támadó, aki jogosultságokkal rendelkezik a parancs végrehajtására, megkerülheti a beállított korlátozást, és a parancsot root jogosultsággal hajthatja végre. A korlátozás megkerüléséhez elegendő megpróbálni a megadott parancsot végrehajtani az UID „-1” vagy „4294967295” használatával, ami a parancs UID 0-val történő végrehajtásához vezet.
Például, ha a beállítások között van egy szabály, amely bármely felhasználó számára engedélyezi a program végrehajtását \/usr\/bin\/id bármely UID alatt:
myhost ALL = (ALL, !root) \/usr\/bin\/id
vagy egy változat, amely csak egy adott felhasználó, bob számára engedélyezi a végrehajtást:
myhost bob = (ALL, !root) \/usr\/bin\/id
A felhasználó végrehajthatja a „sudo -u ‘#-1’ id” parancsot, és a \/usr\/bin\/id segédprogram root jogosultságokkal fog elindulni, figyelembe véve a beállításokban lévő kifejezett tilalmat. A probléma a „-1” vagy „4294967295” különleges értékek figyelmen kívül hagyásából adódik, amelyek nem okoznak UID váltást, de mivel a sudo már root alatt fut, UID váltás nélkül a célparancs is root jogosultsággal fog elindulni.
A SUSE és openSUSE disztribúciókban a „NOPASSWD” kifejezés megadása nélkül a sebezhetőség , mivel a sudoers fájlban alapértelmezetten engedélyezett a „Defaults targetpw” mód, amelyben az UID-t a jelszóadatbázison keresztül ellenőrzik, és megjelenik a célfelhasználó jelszavának megadására vonatkozó kérés. Az ilyen rendszerek esetén a támadás csak akkor valósítható meg, ha a következő típusú szabályok léteznek:
myhost ALL = (ALL, !root) NOPASSWD: \/usr\/bin\/id
A probléma a következő verzióban lett megszüntetve . A javítás szintén elérhető formában . A disztribúciókban a sebezhetőség már megszüntetésre került a , , , , és . A hír írásakor a probléma még nem volt javítva a és . A sebezhetőséget az Apple biztonsági kutatói fedezték fel.
Forrás: opennet.ru
