Biztonsági kutató írta: GitHub tudtára adta nemrég biztonsági rést azonosított (CVE-2020-16125) a bejelentkezési képernyő megjelenítéséért felelős GNOME Display Manager (GDM) szolgáltatásban.
Egy másik sebezhetőséggel kombinálva a számlakövetési szolgáltatásban (számlák-démon), a probléma lehetővé teszi, hogy a kód rootként fusson. A biztonsági rés az eredeti konfigurációs segédprogram helytelen indításával társul, ha lehetetlen hozzáférni a fiók démon szolgáltatásához a DBus-on keresztül.
A sebezhetőségről
Kiváltságtalan felhasználó összeomolhatja a accounts-daemon folyamatot vagy leteszem, mi teremti meg a feltételeket a gnome-initial-setup segédprogram futtatásához a GDM-től, amelyen keresztül egy új felhasználó regisztrálhatja magát a sudo csoport tagjává, vagyis képes a programokat root-ként futtatni.
normálisan, A GDM meghívja a gnome-initial-setup-ot az első felhasználó beállításához ha nincsenek számlák a rendszerben. A számlák létezésének ellenőrzését a accounts-daemon kapcsolattartásával végezzük. Ha a megadott folyamat kudarcot vall, a GDM feltételezi, hogy hiányoznak a fiókok, és elindítja a kezdeti konfigurációs folyamatot.
A kutató két módszert azonosított a démon-számlák folyamatának megzavarására- Az első (CVE-2020-16126) a jogosultságok helytelen alaphelyzetbe állításának, a második (CVE-2020-16127) hibának köszönhető a ".pam_environment" fájl feldolgozása közben.
Ezen túlmenően, egy másik biztonsági rést találtak a démon-számlákon (CVE-2018-14036) a fájl elérési útjának helytelen ellenőrzése és az önkényes fájlok tartalmának a rendszeren történő olvasásának lehetővé tétele.
A accounts-daemon biztonsági réseit az Ubuntu fejlesztők által végrehajtott változtatások okozzák, és nem jelennek meg a FreeDesktop projekt fő fiók-démon kódjában és a Debian csomagban.
A CVE-2020-16127 probléma egy olyan javításban található meg az Ubuntuban, amely megvalósítja az is_in_pam_environment függvényt, amely beolvassa a .pam_environment fájl tartalmát a felhasználó saját könyvtárából. Ha egy szimbolikus linket tesz a / dev / zero fájlra a fájl helyett, akkor a fiók démon folyamata végtelen olvasási műveletekre áll, és leáll a kérésekre a DBus segítségével.
Szokatlan, hogy a modern operációs rendszer sérülékenységét ilyen könnyű kihasználni. Bizonyos esetekben több ezer sornyi kódot írtam egy biztonsági rés kihasználására.
A legtöbb modern kiaknázás bonyolult trükköket foglal magában, például memóriasérülést okozó sebezhetőséget használ a hamis objektumok elcsalására a halomban, vagy a fájl lecserélése egy mikroszekundumos pontosságú szimbolikus linkre a TOCTOU biztonsági rés kihasználása érdekében.
Tehát manapság viszonylag ritkán találunk olyan sebezhetőséget, amelynek kiaknázásához nem szükséges kódolási készség. Azt is gondolom, hogy a biztonsági rést könnyen meg lehet érteni, még akkor is, ha nincsenek előzetes ismereteid az Ubuntu működéséről, vagy tapasztalataid vannak a biztonsági kutatásban.
A CVE-2020-16126 biztonsági rést egy másik javítás okozza amely visszaállítja az aktuális felhasználó jogosultságait néhány DBus-hívás feldolgozása közben (például org.freedesktop.Accounts.User.SetLanguage).
A fiók démon folyamata általában gyökérként fut, ami megakadályozza, hogy egy normál felhasználó jeleket küldjön.
De a hozzáadott javításnak köszönhetően a folyamatjogosultságok visszaállíthatók és a felhasználó jel küldésével befejezheti ezt a folyamatot. Támadás végrehajtásához egyszerűen hozza létre a jogosultságok (RUID) eltávolításának feltételeit, és küldjön SIGSEGV vagy SIGSTOP jelet a fiók démonjának folyamatába.
A felhasználó befejezi a grafikus munkamenetet, és elmegy a szöveges konzolra (Ctrl-Alt-F1).
A grafikus munkamenet befejezése után a GDM megpróbálja megjeleníteni a bejelentkezési képernyőt, de lefagy, amikor megpróbálja választ kapni a accounts-démonról.
A SIGSEGV és SIGCONT jeleket a konzol küldi a fiók démon folyamatának, aminek következtében a rendszer lefagy.
Jeleket küldhet a grafikus munkamenetből való kilépés előtt is, de ezt késéssel kell megtennie, hogy legyen ideje befejezni a munkamenetet, és a jel elküldése előtt a GDM-nek volt ideje elindulni.
A GDM-ben a fiókszemlennel kapcsolatos kérés sikertelen, és a GDM meghívja a gnome-initial-setup segédprogramot, amelynek felületén elegendő új fiókot létrehozni.
A biztonsági rést a GNOME 3.36.2 és a 3.38.2 verziókban javították. A sebezhetőség kihasználását megerősítették az Ubuntu és annak származékai.
forrás: https://securitylab.github.com