Den udført oversættelse af VMA (Virtual Memory Area) fra strukturen "red-black tree" til "maple tree" i Linux-kernen 6.1 førte til en sårbarhed (CVE-2023-3269), som giver en ikke-privilegeret bruger mulighed for at udføre sin kode med kerneniveau-rettigheder. Sårbarheden, der har kodenavnet StackRot, viser sig fra udgivelsen af kernen 6.1 og er blevet rettet i opdateringerne 6.4.1, 6.3.11 og 6.1.37.
Strukturen "maple tree" er en variant af B-tree, der understøtter indekssering baseret på værdier i intervaller og er designet til effektiv udnyttelse af cache i moderne processorer. Sammenlignet med "red-black tree" muliggør brugen af "maple tree" højere ydeevne. Sårbarheden skyldes en fejl i håndteringen af stack-udvidelser — i "maple tree"-strukturen, der anvendes til at administrere virtuelle hukommelsesområder i kernen, kunne udskiftning af en node i træet ske uden at anvende en skrive-lås, hvilket skabte betingelser for adgang til hukommelsesområdet efter det var blevet frigivet (use-after-free).
Udnyttelsen af sårbarheden blev kompliceret af, at noder i "maple tree"-strukturen frigives i en forsinket tilstand ved brug af callback-opkald med RCU (Read-copy-update)-låsninger. Ikke desto mindre har forskerne været i stand til at overvinde de opståede udfordringer og forberede et fungerende exploit, som de planlægger at offentliggøre i slutningen af juli for at give brugerne tid til at opdatere deres systemer. Udnyttelse er mulig i næsten alle kernelkonfigurationer og kræver kun minimale privilegier.
Kilde: opennet.ru
