Linux 6.1 südamikus teostatud VMA (Virtuaalne Mäluala) andmestruktuuri „punase-musta puu” asendamine „vahtrapuu” viis haavatavuse (CVE-2023-3269 tekkimiseni), mis võimaldab mitteprivilegeeritud kasutajal käivitada oma koodi kernelitasemel. Haavatavus, mille koodinimi on StackRot, ilmnes alates 6.1 versiooni väljakirjast ja on kõrvaldatud versioonides 6.4.1, 6.3.11 ja 6.1.37.
„Vahtrapuu” struktuur on B-puu variant, mis toetab väärtuste vahemike indekseerimist ja on kavandatud tänapäevaste protsessorite vahemälu tõhusaks kasutamiseks. Erinevalt „punase-musta puu” kasutamisest võimaldab „vahtrapuu” saavutada kõrgemat jõudlust. Haavatavus tuleneb veast virna laiendamise töötlejas — „vahtrapuu” struktuuris, mida kasutatakse virtuaalmälu haldamiseks kärgis, võis puu sõlme asendamine toimuda ilma kirjutamise lukustuse seadmiseta, luues tingimused mälu piirkonna juurdepääsuks pärast selle vabastamist (use-after-free).
Haavatavuse kasutamine oli keeruline, kuna "maple tree" struktuuri sõlmed vabastatakse viivitatud režiimis, kasutades RCU (Read-copy-update) lukustuse callback-kõnesid. Siiski õnnestus teadlastel ületada tekkinud raskused ja valmistada ette töötav eksploit, mille nad kavatsevad avaldada juuli lõpus, et anda kasutajatele aega oma süsteemide uuendamiseks. Kasutamine on võimalik peaaegu kõikides tuumkonfiguratsioonides ja nõuab vaid minimaalset privileege.
Allikas: opennet.ru
