Win32k use-after-free 0-day (CVE-2025-24983)¶
win32k içinde bir
W32PROCESSyapısının gerektiğinden bir kez fazla dereference edildiği, race condition'a bağlı bir use-after-free; 2023'ten beri PipeMagic backdoor'u üzerinden in-the-wild exploit edildi ve Mart 2025'te patch'lendi.
Mechanism¶
Bug sınıfı: race altında reference-count / lifetime UAF
Burada kırılan security boundary object lifetime'dır. WaitForInputIdle API'si
üzerinden ulaşılan belirli bir win32k code path'inde, process başına tutulan
W32PROCESS yapısı olması gerekenden bir kez fazla dereference edilir. Bu fazladan
dereference bir reference'ı düşürür (ya da owning reference'ı zaten release edilmiş bir
object üzerinde işlem yapar) ve kernel'i, free edilmiş session-pool belleğine bir
pointer tutar ve daha sonra kullanır halde bırakır — klasik bir use-after-free.
Bu over-dereference yalnızca iki işlem birbirine geçtiğinde ortaya çıktığı için bug race condition'a bağlıdır: attacker'ın, başka bir path hâlâ pointer'a güvenirken kernel'in object'i free etmesini sağlamak için bir timing window kazanması gerekir. Free edilen slot daha sonra attacker-controlled data ile reclaim edilirse, bu stale use kontrol edilebilir bir corruption'a dönüşür ve düşük yetkili bir kullanıcıyı SYSTEM'e yükseltir.
Walkthrough¶
Üst düzey anlatım, herkese açık ESET / Microsoft disclosure'ından (exploit detayı yayımlanmadı):
- Attacker,
WaitForInputIdlekullanarak vulnerable path'i tetikler; bu daW32PROCESSlifetime'ını yanlış yöneten win32k koduna ulaşır. - Eşzamanlı thread'leri race ettirerek attacker fazladan dereference'ı zorlar; böylece
W32PROCESSile ilişkili object başka bir yerde hâlâ referans edilirken free edilir. - Free edilen allocation reclaim edilir (heap grooming), böylece dangling reference artık attacker'ın etkilediği içeriğe işaret eder.
- Ardından gelen stale use bir kernel read/write veya control-flow primitive'ine, oradan da SYSTEM için token theft'e yönlendirilir.
Etkilenen surface
Herkese açık raporlamaya göre sorun 1809 öncesi Windows'u — Windows 8.1, Server 2012 R2 ve hâlâ desteklenen Server 2016'yı — etkiliyor; Windows 11 veya güncel Windows 10'u etkilemiyor. SYSTEM düzeyinde etkisine rağmen Microsoft bunu Important (not Critical) olarak derecelendirdi, çünkü exploitation bir race kazanmayı gerektiriyor.
Detection¶
- Exploit, PipeMagic modüler backdoor'u ile teslim edildi; PipeMagic tradecraft'ını avlayın: C2/IPC için kullanılan anormal named-pipe oluşturma ve meşru bir uygulama gibi davranan zararlı bir dropper (2024 kampanyalarında sahte bir ChatGPT/OpenAI client kullanıldı).
- Davranışsal: UI message-loop aktivitesi başlatan ve
WaitForInputIdle'ı sürekli çağıran düşük-integrity / non-interactive bir process'in, hızlı thread oluşturma (race driving) ile birleşmesi anormaldir. - Post-exploitation: normalde düşük yetkili bir process'in birden SYSTEM olarak çalışması ya da bir child process'in SYSTEM token'ı miras alması — token/integrity değişikliklerini parent'ın önceki aktivitesiyle ilişkilendirin.
- EDR kernel telemetrisi: legacy host'larda session-pool UAF crash'leri ya da beklenmedik
W32PROCESSilişkili bugcheck'ler, başarısız exploitation denemelerine işaret edebilir.
Mitigation¶
- Patch: Microsoft Mart 2025 güncellemesini (CVE-2025-24983) uygulayın. Birincil ve belirleyici düzeltme budur.
- Upgrade: legacy host'ları Windows 8.1 / Server 2012 R2'den (desteği bitmiş) çıkarıp etkilenmeyen 1809+ / Windows 11 build'lerine taşıyın.
- GDI/USER'a ihtiyaç duymayan process'ler için Win32k system-call filtering process-mitigation policy'si ile win32k exposure'ını azaltın.
- Session pool'da defence-in-depth: HVCI/VBS ve pool integrity özellikleri, free edilmiş object'i güvenilir şekilde reclaim etmenin maliyetini yükseltir.
References¶
- Microsoft Security Update Guide — CVE-2025-24983
- 2-year-old Windows kernel 0-day exploited in the wild — Cyber Security News
- ESET Research disclosure thread