Geri Dön
CVE-2025-13032 Bölüm 2: SAFA, Avast sürücüsü üzerinden Windows 11'de tam yetki yükseltmesini gösterdi
SiTech AI Team2 წთ. საკითხავი

CVE-2025-13032 Bölüm 2: SAFA, Avast sürücüsü üzerinden Windows 11'de tam yetki yükseltmesini gösterdi

SAFA Team, Avast çekirdek sürücüsündeki çift okuma açığı CVE-2025-13032'yi güncel bir Windows 11 sisteminde SYSTEM yetkilerine kadar yerel yetki yükseltmeye dönüştürdüğünü anlattı. Açık daha sonra yamalandı.

SAFA Team, Avast'ın çekirdek sürücüsünde bulduğu çift okuma açığı CVE-2025-13032 hakkındaki araştırmasının ikinci ve son bölümünü yayımladı. Yazı, tamamen güncel bir Windows 11 sisteminde SYSTEM yetkilerine ulaşan sömürü zincirini anlatıyor.

Çift okumadan havuz taşmasına

Sürücü, kullanıcının sağladığı _UNICODE_STRING yapısını alır ama Length alanını iki kez okur: ilk okuma ExAllocatePoolWithTag ile tampon boyutunu belirler, ikincisi ise dizenin içine kopyalandığı memmove çağrısını yürütür. Bu iki okuma arasında ikinci bir iş parçacığı Length değerini 0x1000 gibi büyük bir değere çıkarabilir; ana iş parçacığı ise açıklı IOCTL'i döngü içinde çağırmaya devam eder. Zamanlama tuttuğunda çekirdek ayırdığından fazla bayt kopyalar ve taşma paged pool'daki komşu bloğa taşar. SAFA'ya göre yarış penceresi dar ama kazanılabilir.

Hedef: IORing nesnesinin RegBuffers dizisi

Hedef olarak, eşzamansız dosya işlemlerini IoRingReadFile ve IoRingWriteFile ile gruplayan I/O Ring nesnesi seçildi. RegBuffers işaretçi dizisi tam olarak taşmanın gerçekleştiği paged pool'da durur, boyutu kullanıcı denetimindedir ve tek bir işaretçiyi bozmak yeterlidir. Ekip bu dizilerden çok sayıda ayırdı, bir kısmını serbest bıraktı ve bozulan bloğun canlı bir dizinin yanına düşmesi için açığı tetikledi.

RegBuffers dizisinin şeması

RegBuffers[0] saldırganın belleğindeki sahte bir _IOP_MC_BUFFER_ENTRY yapısına yönlendirildi, böylece çekirdek saldırganın denetlediği adrese başvuruyor. Bu, Windows'un SMAP'i uygulamaması sayesinde mümkün. IoRingReadFile keyfi çekirdek yazımına, IoRingWriteFile ise keyfi okumaya dönüştü.

MDL üzerinden çekirdek adresi sızıntısı

Çekirdek adresleri rastgeleleştirildiği için bilinen tek bir adres gerekiyordu: sürecin kendi _EPROCESS yapısı. Kayıtlı tampon bir Memory Descriptor List üzerinden eşlenir ve çekirdek bu işaretçiyi tampon kaydında saklar. Kayıt artık userland'de olduğundan araştırmacılar Mdl alanını okudu, Address değerini MDL'ye yöneltti ve sahibi _EPROCESS'e işaret eden Process alanını okudu.

Onarımlar ve SYSTEM yetkileri

Taşma, havuz bloğu başlığındaki ProcessBilled alanına da zarar verdi; EPROCESS ^ ChunkAddress ^ ExpPoolQuotaCookie olarak hesaplanan gizlenmiş işaretçidir ve düzeltilmezse blok serbest bırakılırken mavi ekrana yol açar. SAFA cookie değerini ikinci, temiz bir IORing nesnesinden türetti ve doğru değeri geri yazdı. Son adım SYSTEM sürecinin token'ını çalmak: sömürü EPROCESS listesini dolaşır, SYSTEM'in token'ını okur ve kendi token alanının üzerine yazar. Açık yamalandı ve yeni Windows çekirdekleri bu tekniği engelleyecek user-mode accessors kullanıyor.

SSiTech

SiTech — AI destekli web geliştirme

Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.