Zraniteľnosť sieťového protokolu CAN BCM umožňovala eskaláciu privilégií v jadre linuxu 

včera boli zverejnené informácie o zraniteľnosti v jadre Linuxu a ktorý je už katalogizovaný ako CVE-2021-3609. Táto zraniteľnosť umožňuje miestnemu používateľovi zvýšiť svoje oprávnenie v systéme z dôvodu rasy v implementácii protokolu CAN BCM a prejavila sa vo verziách jadra Linuxu 2.6.25 až 5.13-rc6.

Rozhodnutie využíva výhody pretože Protokol CAN BCM umožňuje zaregistrovať vlastného správcu správ miestnej siete (CAN) radiča a pripojte ho do konkrétnej sieťovej zásuvky. Po prijatí prichádzajúcej správy sa funkcia zavolá bcm_rx_handler () útočník môže využiť podmienku rasy a vynútiť zatvorenie sieťovej zásuvky pri vykonávaní bcm_rx_handler ().

Problém nastáva, keď je zásuvka zatvorená a funkcia sa volá bcm_release (), v ktorej sa uvoľní pamäť pridelená štruktúram bcm_op a bcm_sock, ktoré sa naďalej používajú v manipulátore bcm_rx_handler () ktorý stále beží, nastáva teda situácia, ktorá vedie k prístupu k už uvoľnenému pamäťovému bloku (use-after-free).

Toto je oznámenie o nedávno nahlásenej chybe (CVE-2021-3609) v sieťovom protokole CAN BCM v jadre Linuxu od verzie 2.6.25 do hlavnej verzie 5.13-rc6.
Zraniteľnosťou je rasa v sieti net / can / bcm.c, ktorá umožňuje eskaláciu privilégií rootovať. Problém pôvodne hlásil syzbot a Norbert Slusarek sa ukázal ako využiteľný.

Útok sa scvrkáva na otvorenie dvoch zásuviek CAN BCM a ich pripojenie k rozhraniu vcan. V prvom konektore zavoláte sendmsg () s indikátorom RX_SETUP nakonfigurovať radič na prichádzajúce správy CAN a na druhý konektor zavoláte sendmsg () na odoslanie správy na prvý konektor.

Po doručení správy spustí sa volanie bcm_rx_handler () a útočník využije správny okamih a zatvorí prvý soket, čo vedie k spusteniu bcm_release () a spustenie štruktúr bcm_op a bcm_sock, hoci práca z bcm_rx_handler () ešte neukončené.

Manipuláciou s obsahom bcm_sock môže útočník prepísať ukazovateľ na funkciu sk-> sk_data_ready (sk), presmerovať vykonávanie a pomocou techník návratového programovania (ROP) prepísať parameter modprobe_path a spustiť jeho kód ako root .

Pri použití techniky ROP sa útočník nepokúša vložiť svoj kód na pamiatku, ale funguje to ďalej kúsky pokyny pre stroj sú už k dispozícii v načítaných knižniciach zakončených príkazom control return (spravidla ide o koniec funkcií knižnice).

Povolenia potrebné na vykonanie útoku môže získať neprivilegovaný používateľ v kontajneroch vytvorených v systémoch s povolenými priestormi mien používateľov. Napríklad, užívateľské menné priestory sú štandardne zahrnuté v Ubuntu a Fedora, ale nie sú povolené v Debiane a RHEL.

Môj pokus o zneužitie sa sústreďuje na jadrá s verziou> = 5.4-rc1 zo spáchania bf74aa86e111. Nevyšetroval som zneužívanie jadier starších ako 5.4-rc1 pomocou pracovných nástrojov, ale využitie starších jadier sa zdá tiež uskutočniteľné. 

Je to spomenuté výskumník, ktorý identifikoval zraniteľnosť, bol schopný pripraviť zneužitie získať práva root v systémoch s jadrami od verzie 5.4 a novšej vrátane možnosti úspešného útoku na Ubuntu 20.04.02 LTS.

Práca pri zneužití sa obmedzuje na vytvorenie reťazca volaní do podobných blokov („gadgetov“) na získanie požadovanej funkčnosti. Útok vyžaduje prístup na vytvorenie zásuviek CAN a nakonfigurované sieťové rozhranie vcan.

Konečne uvádza sa, že problém stále pretrváva na väčšine distribúcií, ale je to otázka dní, kým budú vydané príslušné opravy.

Ak máte záujem dozvedieť sa o tom viac, môžete sa poradiť nasledujúci odkaz.


Zanechajte svoj komentár

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

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  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ť.