Prehod na strukturo VMA (Virtual Memory Area) iz "red-black tree" na "maple tree" v jedru Linux 6.1 je povzročil ranljivost (CVE-2023-3269), ki omogoča neprivilegiranemu uporabniku izvajanje lastne kode s pravicami jedra. Ranljivost, imenovana StackRot, se pojavlja od izida jedra 6.1 in je bila odpravljena v posodobitvah 6.4.1, 6.3.11 in 6.1.37.
Struktura "maple tree" je različica B-tree, ki podpira indeksacijo po vrednostnih razponih in je zasnovana za učinkovito uporabo predpomnilnika sodobnih procesorjev. V primerjavi z "red-black tree" uporaba "maple tree" omogoča dosego višje zmogljivosti. Ranljivost izhaja iz napake v obdelovalcu razširitve sklada — pri upravljanju področij virtualne pomnilnika v jedru bi lahko zamenjava vozlišča v drevesu potekala brez zaklepanja za pisanje, kar je ustvarilo pogoje za dostop do območja pomnilnika po tem, ko je bilo to sproščeno (use-after-free).
Izkoriščanje ranljivosti je bilo oteženo, saj se vozlišča v strukturi "maple tree" sproščajo v odloženem načinu z uporabo callback klicev s zaklepi RCU (Read-copy-update). Vendar pa so raziskovalcem uspeli premagati težave in pripraviti delujoč eksploit, ki ga nameravajo objaviti konec julija, da bi uporabnikom omogočili čas za posodobitev sistemov. Izkoriščanje je možno v skoraj vseh konfiguracijah jedra in zahteva le minimalne privilegije.
Izvor: opennet.ru
