Qualys leleplezett az általam azonosított hír két sebezhetőség (CVE-2021-44731 és CVE-2021-44730) a snap-confine segédprogramban, amelyet a root SUID jelzővel küldtek, és a snapd folyamat hívja meg, hogy végrehajtható környezetet hozzon létre a snap csomagokban terjesztett alkalmazások számára.
A blogbejegyzésben ez szerepel A sérülékenységek lehetővé teszik a jogosulatlan helyi felhasználók számára, hogy rootként hajtsanak végre kódot a rendszerben.
Az első biztonsági rés fizikai link-manipulációs támadást tesz lehetővé, de ki kell kapcsolni a rendszer hardlink védelmét (a sysctl fs.protected_hardlinks 0-ra állításával).
A probléma ennek oka a végrehajtható fájlok helyének helytelen ellenőrzése a snap-update-ns és a snap-discard-ns segédprogramok közül amelyek rootként futnak. Ezeknek a fájloknak az elérési útját az sc_open_snapd_tool() függvény számította ki a /proc/self/exe fájl saját elérési útja alapján, lehetővé téve egy kemény hivatkozás létrehozását a könyvtárban, és megadhatja a snap-update-ns és a snap opciókat. -discard-ns ebben a könyvtárban. Ha merev hivatkozásról indítja el, a snap-confine rootként végrehajtja a támadó által helyettesített snap-update-ns és snap-discard-ns fájlokat az aktuális könyvtárból.
A biztonsági rés sikeres kihasználása lehetővé teszi, hogy minden nem jogosult felhasználó root jogosultságot szerezzen a sérülékeny gazdagépen. A Qualys biztonsági kutatók képesek voltak függetlenül ellenőrizni a sebezhetőséget, kifejleszteni egy exploitot, és teljes root jogosultságokat szerezni az alapértelmezett Ubuntu-telepítéseken.
Amint a Qualys kutatócsoportja megerősítette a sebezhetőséget, felelősségteljesen felfedtük a sebezhetőséget, és együttműködtünk a szállítókkal és a nyílt forráskódú disztribúciókkal az újonnan felfedezett sebezhetőség bejelentése érdekében.
A második sebezhetőséget egy versenyhelyzet okozza és az alapértelmezett Ubuntu asztali konfigurációban használhatók. Ahhoz, hogy az exploit sikeresen működjön az Ubuntu kiszolgálón, a telepítés során ki kell választania az egyik csomagot a „Kiemelt szerverraszterek” részben.
verseny állapota a setup_private_mount() függvényben nyilvánul meg az azonnali csomag csatlakoztatási pont névterének előkészítése során hívják meg. Ez a függvény létrehoz egy ideiglenes "/tmp/snap.$SNAP_NAME/tmp" könyvtárat, vagy egy meglévő könyvtárat használ a snap csomag könyvtárainak összekapcsolásához és csatlakoztatásához.
Mivel az ideiglenes címtár neve megjósolható, a támadó a tulajdonos ellenőrzése után, de a csatolási rendszer meghívása előtt megváltoztathatja annak tartalmát szimbolikus hivatkozásra. Például létrehozhat egy "/tmp/snap.lxd/tmp" szimbolikus hivatkozást a /tmp/snap.lxd könyvtárban, amely egy tetszőleges könyvtárra mutat, és a mount() hívás követi a symlinket, és felcsatolja a könyvtárat a térben. a nevek közül.
Hasonlóképpen felcsatolhatja annak tartalmát a /var/lib könyvtárba, és a /var/lib/snapd/mount/snap.snap-store.user-fstab felülbírálásával megszervezheti a /etc könyvtár beillesztését a csomagnévtér-snap-ba a könyvtár betöltéséhez. root hozzáférésből az /etc/ld.so.preload lecserélésével.
Megfigyelhető, hogy egy exploit létrehozása nem triviális feladatnak bizonyult, mivel a snap-confine segédprogram biztonságos programozási technikákkal íródott (a snapd Go-ban van írva, de a C-t a snap-confine-hoz használják), AppArmor profilokon alapuló védelemmel rendelkezik, a seccomp mechanizmus alapján szűri a rendszerhívásokat és mount névteret használ az elszigeteltségért.
A kutatók azonban el tudtak készíteni egy funkcionális kizsákmányolást hogy root hozzáférést szerezzen a rendszerhez. A kihasználó kód néhány héttel azután jelenik meg, hogy a felhasználók telepítik a mellékelt frissítéseket.
Végül érdemes megemlíteniA problémákat a snapd csomag frissítése javította Ubuntu 21.10, 20.04 és 18.04 verziókhoz.
A Snap-ot használó többi disztribúció mellett megjelent a Snapd 2.54.3, amely a fenti problémákon kívül egy másik sebezhetőséget is javít (CVE-2021-4120), amely lehetővé teszi speciálisan tervezett bővítménycsomagok telepítésekor, felülírja az AppArmor tetszőleges szabályait, és megkerüli a csomaghoz beállított hozzáférési korlátozásokat.
Ha szeretne többet megtudni róla, ellenőrizheti a részleteket A következő linken.