Skip to content

Win32k use-after-free 0-day (CVE-2025-24983)

win32k içinde bir W32PROCESS yapı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ı):

  1. Attacker, WaitForInputIdle kullanarak vulnerable path'i tetikler; bu da W32PROCESS lifetime'ını yanlış yöneten win32k koduna ulaşır.
  2. Eşzamanlı thread'leri race ettirerek attacker fazladan dereference'ı zorlar; böylece W32PROCESS ile ilişkili object başka bir yerde hâlâ referans edilirken free edilir.
  3. Free edilen allocation reclaim edilir (heap grooming), böylece dangling reference artık attacker'ın etkilediği içeriğe işaret eder.
  4. 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 W32PROCESS iliş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

See also