Zjistili zranitelnost ve firejail, která umožňovala root přístup k systému

Nedávno zveřejnili zprávu, že byla zjištěna zranitelnost (již uvedeno pod CVE-2022-31214) v nástroji sandboxing aplikace Firejail, je podrobně uvedeno, že zjištěná chyba by mohla umožnit místnímu uživateli stát se rootem na hostitelském systému.

Firejail používá mechanismus jmenných prostorů, AppArmor a filtrování systémových volání (seccomp-bpf) v Linuxu pro izolaci, ale vyžaduje zvýšená oprávnění ke konfiguraci izolovaného vydání, která získá navázáním na obslužný program suid root flag nebo spuštěním pomocí sudo.

Tato chyba zabezpečení je způsobena chybou v logice možnosti „–join=“. », navržený pro připojení k izolovanému prostředí, které již běží (podobně jako příkaz login pro prostředí sandbox) s prostředím definovaným ID procesu, který v něm běží. Ve fázi před spuštěním Firejail detekuje oprávnění zadaného procesu a aplikuje je na nový proces, který se připojí k prostředí pomocí možnosti „–join“.

Před připojením zkontroluje, zda zadaný proces běží v prostředí firejail. Tato kontrola vyhodnocuje existenci souboru /run/firejail/mnt/join. Chcete-li zneužít zranitelnost, útočník může simulovat fiktivní neizolované prostředí firejail pomocí jmenného prostoru připojit a poté se k němu připojit pomocí volby „–join“.

Pokud konfigurace neumožňuje režim zákazu získávání dalších oprávnění v nových procesech (prctl NO_NEW_PRIVS), firejail připojí uživatele k fiktivnímu prostředí a pokusí se použít konfiguraci uživatelského jmenného prostoru identifikátorů uživatele (uživatel jmenného prostoru) procesu init ( PID 1).

Většina logiky za funkcí spojení je ve zdrojovém kódu ze souboru `src/firejail/join.c`. Kritické části kódu jsou prováděny pomocí zvýšená oprávnění (efektivní UID 0). ID procesu předané jako příkaz argument řádku je zkontrolován, aby se zjistilo, zda se jedná o rkontejneru a určit některé jeho vlastnosti, které Platí to i pro nový vstupní proces.

Hlavní kritéria pro rozhodnutí, zda se zapojit do cílového procesu úspěch je přítomnost souboru ve jmenném prostoru připojení cíle, proces nalezený v /run/firejail/mnt/join. Toto ověření se provádí na ffunkce `is_ready_for_join()`. Soubor se otevře pomocí lPříznaky `O_RDONLY|O_CLOEXEC` a výsledek trasování `fstat()` by měly splňovat následující požadavky:

– soubor musí být normální soubor.
– soubor musí vlastnit ID uživatele 0 (jak je vidět z původního uživatele
jmenný prostor).
– soubor musí mít velikost 1 bajt.

Jako výsledek, proces připojený přes "firejail --join" skončí ve jmenném prostoru původní uživatelské ID uživatele s nezměněnými privilegii, ale v jiném prostoru přípojných bodů, zcela pod kontrolou útočníka.

Výsledný "připojený" shell nyní bude žít na původním uživateli
jmenný prostor, ale stále si zachovává původní normální uživatelská oprávnění jmenný prostor připojení bude ten, který bude ovládat útočník. Tak jako
konfigurace nonewprivs nebyla použita, útočník nyní může
spouštět programy setuid-root v tomto jmenném prostoru připojení

Útočník může zejména spouštět programy setuid-root v prostoru bodu připojení, který vytvořil, což mu umožňuje například změnit konfiguraci /etc/sudoers nebo parametry PAM v hierarchii souborů a získat možnost spouštět příkazy jako root. pomocí sudo nebo jeho utilit.

Nakonec stojí za zmínku, že byl vyvinut funkční exploit, testovaný na aktuálních verzích openSUSE, Debian, Arch, Gentoo a Fedora s nainstalovaným nástrojem firejail.

Problém byl opraven ve verzi Firejail 0.9.70. Jako bezpečnostní opravu můžete nastavit konfiguraci (/etc/firejail/firejail.config) na „no join“ a „force-nonewprivs yes“.

Konečně pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti v následující odkaz.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.