
CVE-2025-13032, hissə 2: SAFA Avast sürücüsü ilə Windows 11-də tam səlahiyyət yüksəltməsini göstərdi
SAFA Team Avast-ın kernel sürücüsündəki CVE-2025-13032 ikiqat oxuma zəifliyini yenilənmiş Windows 11 sistemində SYSTEM səlahiyyətlərinə qədər tam lokal yüksəltməyə çevirdiyini ətraflı təsvir edib. Zəiflik sonradan yamalanıb.
SAFA Team, Avast-ın kernel sürücüsündə aşkar etdiyi CVE-2025-13032 ikiqat oxuma zəifliyi ilə bağlı araşdırmasının ikinci və son hissəsini dərc edib. Yazı, tam yenilənmiş Windows 11 sistemində SYSTEM səlahiyyətlərinə çatan istismar zəncirini təsvir edir.
İkiqat oxumadan hovuz daşmasına
Sürücü istifadəçinin _UNICODE_STRING strukturunu qəbul edir, lakin Length sahəsini iki dəfə oxuyur: əvvəlcə ExAllocatePoolWithTag ilə buferin ölçüsünü təyin edir, sonra isə sətrin ora köçürüldüyü memmove üçün istifadə edir. Bu iki oxuma arasında ikinci axın Length dəyərini 0x1000 kimi böyük qiymətə qaldıra bilər, əsas axın isə dövr içində zəif IOCTL-i çağırmağa davam edir. Vaxt uyğun gəldikdə kernel ayırdığından çox bayt köçürür və daşma qonşu bloka keçir. SAFA-ya görə yarış pəncərəsi dardır, amma qazanıla bilir.
Hədəf: IORing obyektinin RegBuffers massivi
Hədəf kimi asinxron fayl əməliyyatlarını IoRingReadFile və IoRingWriteFile ilə qruplaşdırmağa imkan verən I/O Ring obyekti seçildi. Onun RegBuffers göstərici massivi məhz daşmanın baş verdiyi paged pool-da yerləşir, ölçüsünü istifadəçi idarə edir və bir göstəricinin korlanması read/write primitivi üçün kifayətdir. Komanda çoxlu belə massiv ayırdı, bir hissəsini azad edib korlanmış blokun canlı massivin yanına düşməsi üçün zəifliyi işə saldı.

RegBuffers[0] hücumçunun yaddaşındakı saxta _IOP_MC_BUFFER_ENTRY strukturuna yönləndirildi, beləcə kernel hücumçunun nəzarət etdiyi ünvana müraciət edir. Bu, Windows-un SMAP-i tətbiq etməməsi sayəsində mümkündür. IoRingReadFile ixtiyari kernel yazmasına, IoRingWriteFile isə ixtiyari oxumaya çevrildi.
MDL vasitəsilə kernel ünvanının sızması
Kernel ünvanları təsadüfiləşdirildiyi üçün məlum ünvan lazım idi: öz _EPROCESS-i. Qeydiyyatdan keçmiş bufer Memory Descriptor List ilə xəritələnir və kernel göstəricini bufer qeydində saxlayır. Qeyd artıq userland-də olduğundan tədqiqatçılar Mdl sahəsini oxudular, Address-i MDL-ə yönəltdilər və Process sahəsindən sahibinə aid _EPROCESS göstəricisini aldılar.
Bərpa və SYSTEM səlahiyyətləri
Daşma hovuz blokunun başlığındakı ProcessBilled sahəsinə də ziyan vurdu; bu, EPROCESS ^ ChunkAddress ^ ExpPoolQuotaCookie kimi hesablanan gizlədilmiş göstəricidir və düzəldilməzsə blok azad edilərkən mavi ekrana yol açır. SAFA cookie-ni ikinci, təmiz IORing obyektindən çıxardı və düzgün qiyməti geri yazdı. Son addım SYSTEM prosesinin token-ini oğurlamaqdır: istismar EPROCESS siyahısını gəzir, SYSTEM-in token-ini oxuyub öz sahəsinin üzərinə yazır. Zəiflik yamalanıb və yeni Windows nüvələri texnikanı bloklayan user-mode accessors istifadə edir.
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.