sok A Qualys biztonsági kutatói kritikus sebezhetőséget azonosítottak (CVE-2021-3156) sudo segédprogramban, amelynek célja a parancsok végrehajtásának megszervezése más felhasználók nevében.
Sebezhetőség engedélyezi a hitelesítés nélküli hozzáférést root jogosultságokkal. A probléma bármely felhasználó használhatja, függetlenül a rendszercsoportok jelenlététől és az / etc / sudoers fájl bejegyzésének jelenlététől.
A támadáshoz nem szükséges megadni a felhasználó jelszavát, vagyis a biztonsági rést egy külső személy felhasználhatja a rendszer privilégiumainak emelésére, miután a biztonsági rést egy nem privilegizált folyamat során (beleértve a "senki" felhasználóval indítottakat) is veszélyeztették.
Ha biztonsági rést szeretne keresni a rendszerén, egyszerűen futtassa a "sudoedit -s /" parancsot, és a biztonsági rés fennáll, ha a "sudoedit:" kezdetű hibaüzenet jelenik meg.
A sebezhetőségről
A biztonsági rés 2011 júliusa óta jelent meg, és puffertúlcsordulás okozza a parancssorok parancsértelmezésére shell-módban történő végrehajtására szánt paraméterekkel. A shell mód az "-i" vagy "-s" argumentumok megadásával engedélyezhető, és a parancs végrehajtását nem közvetlenül, hanem egy további shell-hívás útján hajtja végre, a "-c" jelzővel ("sh -c parancs»).
A lényeg az, hogy a sudo segédprogram normál futtatása esetén az "-i" és "-s" opciók megadásával elkerüli a speciális karaktereket, de a sudoedit segédprogram indításakor a paraméterek nem kerülnek el, mivel a parse_args () A függvény a MODE_SHELL helyett a MODE_EDIT környezeti változót állítja be, és nem állítja vissza az "valid_flags" értékét.
Másfelől, a kitörölhetetlen karakterátvitel feltételeket teremt egy újabb hiba megjelenésére a vezérlőben, amely eltávolítja a menekülési karaktereket, mielőtt ellenőrizné a sudoer szabályokat.
A kezelő hibásan elemzi a visszavágó karakter jelenlétét anélkül, hogy elmenekülne a sor végén, úgy ítéli meg, hogy ez a visszavágás még egy karaktert elhagy, és továbbra is olvassa az adatokat a vonal határain túl, átmásolja azokat a "user_args" pufferbe, és felülírja a pufferen kívüli memóriaterületeket.
És megemlítik, hogy amikor a sudoedit parancssorban szereplő értékeket megpróbálja manipulálni, a támadó elérheti az újraírható sor felvételét az adatokban, amely befolyásolja a munka későbbi menetét.
A kihasználás létrehozása mellett leegyszerűsíti azt a tényt, hogy a támadó teljes mértékben ellenőrzi a user_args puffer méretét, amely megfelel az összes átadott argumentum méretének, valamint a pufferen kívül írt adatok méretét és tartalmát is használja a Környezeti változók.
A Qualys biztonsági kutatóinak három hasznosítást sikerült elkészíteniük, amelyek munkája a sudo_hook_entry, service_user és def_timestampdir struktúrák tartalmának átírásán alapul:
- A sudo_hook_entry megszakításával a "SYSTEMD_BYPASS_USERDB" nevű bináris fájl futtatható rootként.
- A service_user felülírása tetszőleges kódot futtatott rootként.
- A def_timestampdir felülbírálásával lehetővé lehetett tenni a sudo verem tartalmának, a környezeti változókkal együtt, az / etc / passwd fájlba történő átmosását, és a felhasználó cseréjét root jogosultságokkal.
A kutatók kimutatták, hogy kihasználja a munkát hogy teljes root jogosultságokat kapjon az Ubuntu 20.04-en, a Debian 10-en és a Fedora 33-on.
Sebezhetőség kihasználható más operációs rendszereken és disztribúciókban, de a kutatók ellenőrzése az Ubuntu, a Debian és a Fedora lehetőségekre korlátozódott, emellett megemlítik, hogy az összes alapértelmezett beállításban szereplő 1.8.2 - 1.8.31p2 és 1.9.0 - 1.9.5p1 sudo verziót érinti. Javasolt megoldás a sudo 1.9.5p2-ben.
A kutatók előzetesen értesítették a fejlesztőket forgalmazók, akik már összehangolt módon kiadták a csomagfrissítéseket: Debian, RHEL, Fedor, Ubuntu, SUSE / openSUSE, Arch Linux, Slackware, Gentoo és FreeBSD.
Végül ha érdekel, hogy többet tudjon meg róla a sérülékenységről ellenőrizheti a részleteket A következő linken.