Linux çekirdeğinin POSIX CPU zamanlayıcılarındaki kritik bir yarış durumu güvenlik açığı, Android cihazlarını hedef alan en karmaşık çekirdek istismarlarından biri olan ayrıntılı bir kavram kanıtı aracılığıyla açığa çıkarıldı.
CVE-2025-38352, Linux çekirdeğinin POSIX CPU zamanlayıcıları uygulamasındaki serbest bırakıldıktan sonra kullan (UAF) güvenlik açığını temsil ediyor.
Kusur daha önce gerçek dünyadaki Android ortamlarında sınırlı ve hedefli bir şekilde kullanıldığı bildirilmişti.
Artık güvenlik araştırmacıları, güvenlik açığının mekaniğini gösteren tamamen işlevsel bir kavram kanıtı yayınladı.
Güvenlik açığı mevcut handle_posix_cpu_timers() CPU zamanlayıcı tıklamaları sırasında tetiklenen zamanlayıcıları işleyen çekirdek işlevi.
Kritik kusur, bir görev, bir iş parçacığından çıktıktan sonra ancak ana işlemin çıkış durumunu toplamadan önce meydana gelen bir işlem durumu olan zombi durumuna geçtiğinde ortaya çıkar.
Teknik Kullanım Mekaniği
Saldırı, iki kritik çekirdek işlemi arasındaki yarış durumundan yararlanıyor.
Ne zaman handle_posix_cpu_timers() Ateşleme zamanlayıcılarını topladıktan sonra kilidini serbest bırakırsa, bir saldırgan aynı anda zombi görevini üstlenebilir ve zamanlayıcıyı silebilir, bu da çekirdeğin, hala erişilirken RCU (Okuma-Kopyalama-Güncelleme) mekanizması aracılığıyla zamanlayıcı yapısını serbest bırakmasına neden olur. Bu, klasik bir serbest bırakma sonrası kullanım senaryosu yaratır.
Kullanım hassas zamanlama koordinasyonu gerektirir. Bir alt süreç, iş parçacığı zombi durumuna geçtikten hemen sonra harekete geçecek şekilde ayarlanmış bir POSIX CPU zamanlayıcısıyla ana olmayan bir iş parçacığı oluşturur.
Ptrace aracılığıyla çalışan bir ana süreç, zombi iş parçacığını toplarken, alt süreç aynı anda çağırır. timer_delete().
Yarış penceresi kazanıldığında, serbest bırakılan süreye şuradan erişilir: handle_posix_cpu_timers()çekirdek belleği bozulmasını tetikliyor.
Bu güvenlik açığının yalnızca 32 bit Android cihazları etkilediği dikkat çekiyor. Modern 64 bit Linux çekirdekleri ve x86 mimarileri şunları içerir: CONFIG_POSIX_CPU_TIMERS_TASK_WORK istismarı engelleyen yapılandırma seçeneği.
Yalnızca 32 bit ARM cihazlarda bu koruma bulunmuyor, bu da istismarların neden belirli Android uygulamalarıyla sınırlı kaldığını açıklıyor.
Test, dikkatli bir çevresel kurulum gerektirir: çekirdek sürümü 6.12.33 (en son güvenlik açığı bulunan LTS), çoklu CPU yapılandırması ve devre dışı bırakılmış KASAN algılaması.
Araştırmacılar, çekirdek adresi temizleyiciyle veya çekirdek adresi temizleyici olmadan başarılı bir şekilde yararlanıldığını gösterdi ve farklı kilitlenme imzaları üretti.
Konsept Detaylarının Kanıtı
Çalışan PoC, ptrace eki, bariyerleri kullanan çok iş parçacıklı senkronizasyon ve CPU benzeşimi sabitleme yoluyla ebeveyn-çocuk süreç koordinasyonunu birleştirir.
Güvenlik Araştırmacısı Faraz’ın bildirdiğine göre, açıktan yararlanma, düzgün yapılandırılmış sistemlerde yaklaşık %50’lik bir başarı oranına ulaşıyor ve yarış durumunun tetikleme metodolojisini doğruluyor.
Güvenlik etkisi, KASAN tarafından algılanan, serbest yazma sonrası levha kullanımı ve çekirdek uyarıları yoluyla kendini gösterir. send_sigqueue(). Her ikisi de çekirdek yapılarında başarılı bellek bozulması olduğunu gösteriyor.
Mevcut PoC’ler büyük ölçüde kavram kanıtı olmaya devam ederken, araştırmacılar çapraz önbellek yığını kullanma teknikleri yoluyla ayrıcalık artırma potansiyeline dikkat çekiyor.
Ancak, sınırlı yarış penceresini kesinti bağlamı içinde genişletmek mühendislik zorluklarını beraberinde getirir.
Linux çekirdek topluluğu halihazırda yamaları dağıtmıştır ve etkilenen sistemler, hafifletilmiş çekirdek sürümlerine yönelik acil güncellemelere öncelik vermelidir.
Anında Güncellemeler Almak ve GBH’yi Google’da Tercih Edilen Kaynak Olarak Ayarlamak için bizi Google Haberler, LinkedIn ve X’te takip edin.