Ranjivost u mrežnom protokolu CAN BCM omogućila je eskalaciju privilegija u linux jezgri 

Jučer objavljena je informacija o ranjivosti u Linux jezgri a koji je već katalogiziran kao CVE-2021-3609. Ova ranjivost omogućuje lokalnom korisniku da poveća svoje privilegije na sustavu zbog rasnih uvjeta u provedbi CAN BCM protokola i očitovanih u verzijama 2.6.25 do 5.13-rc6 Linux jezgre.

Presuda iskorištava jer CAN BCM protokol omogućuje vam registraciju vlastitog upravitelja poruka mrežne mreže regulatora (CAN) i spojite ga na određenu mrežnu utičnicu. Kada stigne dolazna poruka, funkcija se poziva bcm_rx_handler () napadač može iskoristiti stanje utrke i prisiliti mrežnu utičnicu da se zatvori tijekom izvršavanja bcm_rx_handler ().

Problem dolazi kada je utičnica zatvorena a funkcija se naziva bcm_release (), u kojem se oslobađa memorija dodijeljena za strukture bcm_op i bcm_sock, koji se i dalje koriste u rukovaocu bcm_rx_handler () koji još uvijek radi, pa nastaje situacija koja dovodi do pristupa već oslobođenom memorijskom bloku (use-after-free).

Ovo je najava nedavno prijavljene greške (CVE-2021-3609) u mrežnom protokolu CAN BCM u Linux jezgri u rasponu od verzije 2.6.25 do glavne linije 5.13-rc6.
Ranjivost je uvjet utrke u net / can / bcm.c koji omogućuje eskalaciju privilegija. Syzbot je u početku prijavio problem, a Norbert Slusarek pokazao se iskoristivim.

Napad se svodi na otvaranje dvije CAN BCM utičnice i njihovo vezivanje za vcan sučelje. U prvom konektoru zovete sendmsg () s indikatorom RX_SETUP da biste konfigurirali kontroler za dolazne CAN poruke i na drugom konektoru pozivate sendmsg () za slanje poruke prvom konektoru.

Nakon što poruka stigne, aktivira se poziv bcm_rx_handler () i napadač iskoristi pravi trenutak i zatvori prvu utičnicu, što dovodi do pokretanja bcm_release () i lansiranje struktura bcm_op i bcm_sock, iako je rad bcm_rx_handler () još nije dovršen.

Manipulirajući sadržajem bcm_sock, napadač može nadjačati pokazivač na funkciju sk-> sk_data_ready (sk), preusmjeriti izvršenje i, koristeći tehnike orijentiranog programiranja (ROP), nadjačati parametar modprobe_path i učiniti da njegov kôd radi kao root .

Kada koristi ROP tehniku, napadač ne pokušava staviti svoj kod u spomen na, ali djeluje na komadići strojne upute su već dostupne u učitanim knjižnicama, završavajući kontrolnim izrazom return (u pravilu su ovo funkcije funkcija knjižnice).

Neprivilegirani korisnik može dobiti dozvole potrebne za provođenje napada u spremnicima kreiranim na sustavima s omogućenim korisničkim prostorom imena. Na primjer, korisnički prostori imena po defaultu su uključeni u Ubuntu i Fedoru, ali nisu omogućeni u Debianu i RHEL-u.

Moj pokušaj iskorištavanja koncentriran je na jezgre s verzijom> = 5.4-rc1 iz predavanja bf74aa86e111. Nisam istraživao iskorištavanje jezgri starijih od 5.4-rc1 pomoću taskleta, međutim čini se izvedivim i iskorištavanje starijih jezgri. 

Spominje se da istraživač koji je identificirao ranjivost uspio je pripremiti exploit za stjecanje root prava na sustavima s jezgrom od verzije 5.4 i novije, uključujući mogućnost uspješnog napada na Ubuntu 20.04.02 LTS.

Rad eksploatacije svodi se na izgradnju lanca poziva sličnim blokovima ("gadgeti") kako bi se dobila potrebna funkcionalnost. Za napad je potreban pristup za stvaranje CAN utičnica i konfigurirano mrežno sučelje vcan.

Konačno spominje se da problem još uvijek postoji na većini distribucija, ali pitanje je dana kada će se objaviti odgovarajuće zakrpe.

Ako vas zanima više o tome, možete se posavjetovati sljedeći link.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.