Transformarea VMA (Virtual Memory Area) din nucleul Linux 6.1 de la structura de date „red-black tree” la „maple tree” a dus la apariția unei vulnerabilități (CVE-2023-3269), care permite unui utilizator fără privilegii executarea codului său cu drepturi de nucleu. Vulnerabilitatea, numită StackRot, se manifestă începând cu versiunea 6.1 a nucleului și a fost corectată în actualizările 6.4.1, 6.3.11 și 6.1.37.
Structura „maple tree” reprezintă o variantă de B-tree, care suportă indexarea pe intervale de valori și este proiectată pentru utilizarea eficientă a cache-ului procesoarelor moderne. Comparativ cu „red-black tree”, utilizarea „maple tree” oferă o performanță superioară. Vulnerabilitatea este cauzată de o eroare în gestionarea extinderii stivei — în structura „maple tree”, utilizată pentru gestionarea zonelor de memorie virtuală în nucleu, înlocuirea unui nod în arbore putea avea loc fără a seta blocări pentru scriere, ceea ce crea condiții pentru accesarea unei zone de memorie după ce a fost eliberată (use-after-free).
Exploatarea vulnerabilității era complicată de faptul că nodurile în structura „maple tree” sunt eliberate în mod întârziat folosind apeluri callback cu blocări RCU (Read-copy-update). Totuși, cercetătorii au reușit să depășească dificultățile întâmpinate și să pregătească un exploit funcțional, pe care intenționează să-l publice la sfârșitul lunii iulie, pentru a oferi utilizatorilor timp să își actualizeze sistemele. Exploatarea este posibilă în aproape toate configurațiile nucleului și necesită doar privilegii minime.
Sursa: opennet.ro
