Sérülékenységek az OpenBSD-ben, amelyek lehetővé teszik a jogosultságok emelését és az smtpd, ldapd és radiusd hitelesítésének megkerülését

Qualys cég feltárta négy sebezhetőségek Az OpenBSD-ben egy hiba lehetővé teszi a felhasználók számára, hogy hitelesítés nélkül csatlakozzanak bizonyos hálózati szolgáltatásokhoz, míg három másik hiba lehetőséget ad a jogosultságok fokozására a rendszerben. A Qualys jelentésében kiemelik, hogy az OpenBSD fejlesztői gyorsan reagáltak — minden problémát elhárítottak be. OpenBSD 6.5 és OpenBSD 6.6 40 órán belül, a privát értesítést követően.

A távolról kihasználható sebezhetőséget az okozza, hogy a libc könyvtárban a hitelesítési folyamat kezelőjének meghívásakor hiba lép fel, amely meghívja a
programot /usr/libexec/auth/login_style a parancssori argumentumok átadásával. Így például, ha a login_style-t az „-s service” opcionális paraméter használatával hívják meg, akkor a protokoll neve is átadható. Ha a felhasználónév elején „-“ karakter áll, ezt a nevet opcióként kezelik a login_style indulásakor. Ebből fakadóan, ha a hitelesítéshez a felhasználó nevéül „-schallenge” vagy „-schallenge:passwd” van megadva, a login_style a hívást a kezelő használatára vonatkozó kérésként értelmezi. S/Key.

A probléma az, hogy az S/Key protokoll a login_style-ban formálisan támogatott, de valójában figyelmen kívül hagyja a sikeres hitelesítés jelzését. Így a támadó, ha „-schallenge” felhasználónévvel lép fel, megkerülheti a hitelesítést, és jelszó vagy kulcs megadása nélkül hozzáférhet a rendszerhez. Potenciálisan az összes hálózati szolgáltatás érintett lehet, amely a libc szokásos hívásait használja a hitelesítés során. Például a hitelesítés megkerülésének lehetőségét igazolták az smtpd (AUTH PLAIN), ldapd és radiusd szolgáltatásokban.

Az sshd-ben a sebezhetőség nem jelentkezik, mivel ott további védelmi mechanizmus figyeli a felhasználó jelenlétét a rendszeren. Mindazonáltal az sshd-t arra is lehet használni, hogy ellenőrizzük a rendszer sebezhetőségét — ha a felhasználónév „-sresponse:passwd”, a kapcsolat lefagy, mivel az sshd a login_passwd-től várja a hívás paramétereit (challenge), míg a login_passwd a hiányzó paraméterek (a „-sresponse” név opcióként jelenik meg) átadását várja. Potenciálisan egy helyi támadó megpróbálhatja megkerülni a hitelesítést a su segédprogramban, de a „-sresponse” név megadása a folyamat összeomlásához vezet, mivel a getpwnam_r(„-schallenge”, …) függvény végrehajtásakor null pointer-t ad vissza.

Egyéb sebezhetőségek:

  • CVE-2019-19520 — helyi jogosultságemelés az xlock segédprogram manipulálásával, amely az sgid zászlóval van ellátva, módosítva a csoportot „auth”-ra. Az xlock kódjában a könyvtárakhoz való elérési utak felülírása csak felhasználói azonosító (setuid) változtatása esetén tiltotta, így a támadó megváltoztathatja a „LIBGL_DRIVERS_PATH” környezeti változót, és betöltheti saját megosztott könyvtárát, amelynek kódját a „auth” csoport jogosultságainak emelése után hajtják végre.
  • CVE-2019-19522 — lehetővé teszi, hogy egy helyi felhasználó, aki az „auth” csoport tagja, root jogokkal futtathasson kódot a rendszereken, amelyek az S/Key vagy YubiKey autentikációt használják (alapértelmezés szerint inaktívak). Az „auth” csoportba való belépés, amelyhez a fent említett xlock sebezhetőség kihasználásával lehet hozzáférni, lehetővé teszi fájlok írását az /etc/skey és /var/db/yubikey könyvtárakba. Például a támadó új fájlt adhat hozzá az /etc/skey/root könyvtárhoz az egyszer használatos kulcsok generálásához a root felhasználó autentikálásához S/Key-en keresztül.
  • CVE-2019-19519 — lehetőség a forráskorlátok emelésére az su segédprogram manipulálásával. A „-L” opció megadásakor, amely a sikertelen autentikáció esetén ciklikus újrapróbálkozást jelent, a felhasználói osztály csak egyszer áll be, és nem törlődik a további próbálkozásoknál. A támadó végrehajthatja a „su -l -L” parancsot, és az első próbálkozás során beírhat egy idegen bejelentkezést egy másik felhasználói osztályhoz, de a második próbálkozásnál sikeresen azonosíthatja magát. Ebben a helyzetben a felhasználónak azok a korlátok lesznek beállítva, amelyek a felhasználói osztályhoz tartoznak, amit az első próbálkozás során adtak meg (például maximális folyamatok száma vagy a folyamat memóriamérete). A módszer csak nem privilegizált felhasználóktól való korlátok kölcsönzésére működik, mivel a root felhasználó esetén a wheel csoportban való jelenlét szükséges.

További megjegyzésként a megvalósítást az OpenBSD új módszert dolgozott ki a rendszerhívások érvényességének ellenőrzésére, amely tovább nehezíti a sebezhetőségek kihasználását. A módszer csak akkor engedi a rendszerhívások végrehajtását, ha azokat előre regisztrált memóriaterületekből kérik el. A memóriaterületek megjelöléséhez ajánlott új rendszerhívás msyscall().

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster