Geri qayıt
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
SiTech AI Team2 წთ. საკითხავი

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 massivinin sxemi

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.

SSiTech

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.