Chyba zabezpečení v síťovém protokolu CAN BCM umožnila eskalaci oprávnění v linuxovém jádře 

Včera byly zveřejněny informace o chybě zabezpečení v linuxovém jádře a který je již katalogizován jako CVE-2021-3609. Tato chyba zabezpečení umožňuje místnímu uživateli pozvednout svá oprávnění v systému kvůli závodní podmínce při implementaci protokolu CAN BCM a projevující se ve verzích 2.6.25 až 5.13-rc6 jádra Linuxu.

Rozhodnutí využívá protože Protokol CAN BCM umožňuje zaregistrovat vlastního správce zpráv místní sítě (CAN) řadiče a připojte jej ke konkrétní síťové zásuvce. Když přijde příchozí zpráva, funkce je volána bcm_rx_handler () útočník může využít podmínky závodu a vynutit uzavření síťové zásuvky při provádění bcm_rx_handler ().

Problém nastává, když je zásuvka zavřená a funkce se volá bcm_release (), ve kterém je uvolněna paměť přidělená strukturám bcm_op a bcm_sock, které se nadále používají v obslužné rutině bcm_rx_handler () který stále běží, tak nastává situace, která vede k přístupu k již uvolněnému paměťovému bloku (use-after-free).

Toto je oznámení o nedávno nahlášené chybě (CVE-2021-3609) v síťovém protokolu CAN BCM v linuxovém jádře od verze 2.6.25 po hlavní řadu 5.13-rc6.
Zranitelností je rasa v síti net / can / bcm.c, která umožňuje eskalaci oprávnění rootovat. O problému původně informoval syzbot a Norbert Slusarek se ukázal jako využitelný.

Útok se scvrkává na otevření dvou zásuvek CAN BCM a jejich připojení k rozhraní vcan. V prvním konektoru zavoláte sendmsg () s indikátorem RX_SETUP nakonfigurovat řadič pro příchozí zprávy CAN a na druhém konektoru zavoláte sendmsg () k odeslání zprávy na první konektor.

Po příchodu zprávy je spuštěno volání bcm_rx_handler () a útočník využije správnou chvíli a zavře první soket, což vede ke spuštění bcm_release () a spuštění struktur bcm_op a bcm_sock, ačkoli práce bcm_rx_handler () dosud nebyla dokončena.

Manipulací s obsahem bcm_sock může útočník přepsat ukazatel na funkci sk-> sk_data_ready (sk), přesměrovat spuštění a pomocí technik ROP (return-oriented programming) přepsat parametr modprobe_path a spustit jeho kód jako root .

Při použití techniky ROP se útočník nepokouší vložit svůj kód na památku, ale funguje to dál kousky pokyny pro stroj jsou již k dispozici v načtených knihovnách končící návratovým příkazem řízení (zpravidla se jedná o konec funkcí knihovny).

Oprávnění potřebná k provedení útoku může získat neprivilegovaný uživatel v kontejnerech vytvořených v systémech s povolenými jmennými prostory uživatelů. Například jmenné prostory uživatelů jsou standardně zahrnuty v Ubuntu a Fedoře, ale nejsou povoleny v Debianu a RHEL.

Můj pokus o zneužití se soustředí na jádra s verzí> = 5.4-rc1 ze spáchání bf74aa86e111. Nezkoumal jsem zneužití jader starších než 5.4-rc1 pomocí taskletů, nicméně zneužití starších jader se zdá být také proveditelné. 

Je to zmíněno výzkumník, který identifikoval zranitelnost, dokázal připravit exploit získat práva root v systémech s jádry od verze 5.4 a novější, včetně možnosti úspěšného útoku na Ubuntu 20.04.02 LTS.

Práce zneužití se omezuje na vytváření řetězce volání podobných bloků („gadgetů“) za účelem získání požadované funkce. Útok vyžaduje přístup k vytvoření zásuvek CAN a nakonfigurované síťové rozhraní vcan.

Konečně uvádí se, že problém stále přetrvává na většině distribucí, ale je otázkou dnů, než budou vydány příslušné opravy.

Pokud máte zájem o tom vědět více, můžete se poradit následující odkaz.


Zanechte svůj komentář

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

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  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.