Vo firejail odhalili zraniteľnosť, ktorá umožňovala root prístup do systému

Nedávno zverejnili správu, že bola zistená zraniteľnosť (už uvedené pod CVE-2022-31214) v nástroji karantény aplikácie Firejail, je podrobne uvedené, že zistená chyba by mohla umožniť lokálnemu používateľovi stať sa rootom na hostiteľskom systéme.

Firejail používa mechanizmus menných priestorov, AppArmor a filtrovanie systémových hovorov (seccomp-bpf) v Linuxe na izoláciu, ale vyžaduje zvýšené privilégiá na konfiguráciu izolovaného vydania, ktoré získa naviazaním na suid root flag utility alebo spustením pomocou sudo.

Zraniteľnosť je spôsobená chybou v logike možnosti „–join=“. », navrhnutý na pripojenie k izolovanému prostrediu, ktoré už beží (podobne ako príkaz login pre prostredie sandbox) s prostredím definovaným ID procesu, ktorý v ňom beží. Vo fáze pred spustením Firejail deteguje privilégiá určeného procesu a aplikuje ich na nový proces, ktorý sa pripája k prostrediu pomocou možnosti „–join“.

Pred pripojením, skontroluje, či zadaný proces beží v prostredí firejail. Táto kontrola vyhodnotí existenciu súboru /run/firejail/mnt/join. Ak chcete využiť túto zraniteľnosť, útočník môže simulovať fiktívne neizolované prostredie firejail pomocou priestoru názvov mount a potom sa k nemu pripojiť pomocou možnosti „--join“.

Ak konfigurácia neumožňuje režim zákazu získavania ďalších privilégií v nových procesoch (prctl NO_NEW_PRIVS), firejail pripojí používateľa k fiktívnemu prostrediu a pokúsi sa použiť konfiguráciu používateľského menného priestoru identifikátorov používateľov (používateľ menného priestoru) procesu init ( PID 1).

Väčšina logiky funkcie join je v zdrojovom kóde zo súboru `src/firejail/join.c`. Kritické časti kódu sa vykonávajú pomocou zvýšené privilégiá (efektívne UID 0). ID procesu odovzdané ako príkaz riadkový argument sa skontroluje, aby sa zistilo, či ide o rkontajnera a určiť niektoré jeho vlastnosti, ktoré Platí to aj pre nový vstupný proces.

Hlavné kritériá pre rozhodnutie, či sa zapojiť do cieľového procesu úspech je prítomnosť súboru v priestore názvov pripojenia cieľa, proces nájdený v /run/firejail/mnt/join. Toto overenie sa vykonáva na fFunkcia `je_pripravena_pre_pripojenie()`. Súbor sa otvorí pomocou lPríznaky `O_RDONLY|O_CLOEXEC` a výsledok sledovania `fstat()` by mali spĺňať nasledujúce požiadavky:

– súbor musí byť normálny súbor.
– súbor musí vlastniť užívateľské id 0 (ako je zrejmé z pôvodného užívateľa
menný priestor).
– súbor musí mať veľkosť 1 bajt.

Výsledkom je, proces pripojený cez "firejail --join" skončí v mennom priestore pôvodné ID používateľa s nezmenenými privilégiami, ale v inom priestore prípojných bodov, úplne kontrolovaných útočníkom.

Výsledný „pripojený“ shell bude teraz fungovať pre pôvodného používateľa
menný priestor, stále si však zachováva pôvodné privilégiá bežného používateľa menný priestor pripojenia bude ten, ktorý bude ovládať útočník. Ako
konfigurácia nonewprivs nebola použitá, útočník teraz môže
spustiť programy setuid-root v rámci tohto priestoru názvov pripojenia

Útočník môže najmä spúšťať programy setuid-root v priestore bodu pripojenia, ktorý vytvoril, čo mu umožňuje napríklad zmeniť konfiguráciu /etc/sudoers alebo parametre PAM v hierarchii súborov a získať možnosť spúšťať príkazy ako root. pomocou sudo alebo jeho nástrojov.

Nakoniec stojí za zmienku, že bol vyvinutý funkčný exploit, testovaný na aktuálnych verziách openSUSE, Debian, Arch, Gentoo a Fedora s nainštalovanou utilitou firejail.

Problém bol opravený vo verzii Firejail 0.9.70. Ako opravu zabezpečenia môžete nastaviť konfiguráciu (/etc/firejail/firejail.config) na „no join“ a „force-nonewprivs yes“.

Konečne ak máte záujem dozvedieť sa o tom viac, môžete skontrolovať podrobnosti v nasledujúci odkaz.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.