Penligent Başlık

CVE-2025-68260: Linux Çekirdeğinin rust_binder'daki İlk Pas Kodu CVE'si, Kök Neden, Maruziyet Kontrolleri ve Düzeltme Stratejisi

CVE-2025-68260, ana hat Linux çekirdeğinde Rust koduna atanan ilk CVE olarak yaygın bir şekilde tanımlanmıştır. Güvenlik açığı Rust tabanlı Android Binder sürücüsünde (rust_binder) ve çökme sınıfı bir hata olarak tanımlanmaktadır: müdahaleci bağlantılı liste işaretçilerini bozabilen ve çekirdek oops/panic'i (hizmet reddi) tetikleyebilen bir yarış koşulu.

Bu durum güvenlik ekipleri için iki nedenden dolayı önemlidir. Birincisi, "yalnızca çökme" çekirdek hataları, özellikle yüksek kullanılabilirlik veya çok kiracılı ortamlarda gerçek operasyonel etkiye neden olur. İkincisi, maruz kalma yapılandırmaya bağlıdır: Rust Binder uygulaması etkinleştirilmediği ve kullanılmadığı sürece birçok Linux sistemi etkilenmeyecektir.

Güvenlik Mühendisleri için Yönetici Özeti

  • CVE: CVE-2025-68260
  • Bileşen: Linux çekirdeği Rust Android Binder sürücüsü (rust_binder), içeren Node::release ve ölüm_listesi taşıma
  • Hata sınıfı: Yarış koşulu + güvenli olmayan müdahaleci liste manipülasyonu → işaretçi bozulması
  • Etki: Çekirdek çökmesi / DoS (kamuya açıklanmıştır)
  • Maruz kalma durumuna bağlıdır: Rust Binder'ın etkin/seçili olup olmadığı (örn, ANDROID_BINDER_IPC_RUST, binder.impl)
  • NVD durumu: Yazım sırasında "Analiz Bekleniyor" (CVSS beklemede olabilir)

CVE-2025-68260 Nedir: Rust Binder Sürücüsündeki Eşzamanlılık Hatası

NVD kaydı, müdahaleci bir bağlı liste üzerinde belirli bir güvenli olmayan kaldırma işlemini tanımlar. İşlem yalnızca başka hiçbir iş parçacığı eşzamanlı olarak elemanın önceki/sonraki işaretçiler. Hata, bir kilit bırakma modeli Node::release eşzamanlı güvenli olmayan bir KaldırBu da bağlantılı listenin bozulmasına ve çökmelere yol açar.

NVD, bozuk liste işaretçileriyle ilişkili temsili bir çekirdek çökme belirtisi ("Çekirdek disk belleği isteği işlenemiyor...") içerir ve bu, ince bir mantık hatasından ziyade çökme sınıfı bir güvenlik açığıyla tutarlıdır.

Sorunlu modelin kısa bir kavramsal taslağı (bir istismar olarak değil, sezgi için) şuna benzer:

// Kavramsal taslak (tam çekirdek kodu değil):
lock(death_list);
move_all_items_to_local_list();
unlock(death_list);

// Kilit olmadan yinele
for item in local_list {
    // işlem öğesi
}

// Eşzamanlı iş parçacığı yapabilir:
unsafe { death_list.remove(item) } // önceki/sonraki işaretçilere dokunur
// => veri yarışı => işaretçi bozulması => çekirdek çökmesi

Anahtar eşzamanlılık değişmezidir: müdahaleci liste işaretçilerine güvenli bir şekilde dokunmak özel erişim garantileri gerektirir ve bu garantiler, liste öğeleri kilitsiz geçiş sırasında paralel olarak değiştirilebildiğinde başarısız olur.

Bu Neden "İlk Rust Çekirdek CVE'si" Oldu?

Greg Kroah-Hartman (kararlı bakım sorumlusu) bunu Rust kodu için ilk çekirdek CVE'si olarak nitelendirerek, sorunun "sadece bir çökmeye neden olduğunu" ve silah haline getirilebilir bellek bozulmasına giden kanıtlanmış bir yolu temsil etmediğini vurguladı.

Bu çerçeveleme operasyonel açıdan yararlıdır: güvenlik ekiplerinin hatayı yapılandırmaya bağlı bir kullanılabilirlik riski olarak değerlendirmesine yardımcı olurken, istismar edilebilirlik konusunda abartıdan kaçınır.

Etkilenen Sistemler: Sürüm Zaman Çizelgesi ve Yapılandırma Gerçekliği

Zaman çizelgesini ve maruz kalma modelini iki gerçek belirler:

  1. Rust Android Binder sürücüsü Linux ile birleştirildi v6.18-rc1Linux için Rust proje belgelerine göre.
  2. Android çekirdek yapılandırması, Rust varyantı da dahil olmak üzere bir Binder uygulamasının seçilmesini açıkça destekler. Kconfig belgeleri referansları binder.impl Uygulamayı seçmek için kullanılan çekirdek komut satırı düğmesi olarak ve varsayılanı yöneten seçenekleri içerir.

Bu, maruz kalmanın "tamamen Linux" olmadığı anlamına gelir. Genel bir sunucu filosu Rust Binder'ı asla etkinleştirmeyebilir. Ancak Android odaklı çekirdekler, Android konteyner yığınlarını çalıştıran geliştirme makineleri veya Rust Binder uygulamasını etkinleştiren özel yapılar CVE-2025-68260'ı eyleme geçirilebilir olarak ele almalıdır.

Binder'ın kendisi temel bir Android IPC mekanizmasıdır ve Android'in mimari materyalleri tarafından geniş çapta belgelenmiştir.

Hızlı Maruz Kalma Kontrolleri (Denetlenebilir, İstismar İçeriği Yok)

Ortamınızın kapsam dahilinde olup olmadığını belirlemek için bu komutları kullanın.

Çekirdek sürümü

uname -r

Çekirdek yapılandırması: Rust + Binder + Rust Binder

# Dağıtım tarzı /boot yapılandırması (birçok sistemde yaygındır)
grep -E "CONFIG_ANDROID_BINDER_IPC(_RUST)?|CONFIG_RUST" /boot/config-$(uname -r) 2>/dev/null

# /proc/config.gz etkinleştirilmişse
zcat /proc/config.gz 2>/dev/null | grep -E "CONFIG_ANDROID_BINDER_IPC(_RUST)?|CONFIG_RUST"

Binder uygulama seçimi (Android çekirdekleri genellikle binder.impl kullanır)

cat /proc/cmdline | tr ' ' '\n' | grep -E '^binder\.impl='

Bu binder.impl parametresi Android çekirdeği Kconfig'de uygulama seçim davranışının bir parçası olarak belgelenmiştir.

Çarpışma sinyali avcılığı (sadece semptomlar)

dmesg -T | egrep -i "rust_binder|binder|Unable to handle|paging request|Oops|KASAN" | tail -n 200

İyileştirme Stratejisi: Önce Yükseltme, Yalnızca Gerçek CI ile Backport

En güvenli yaklaşım, düzeltmeyi içeren kararlı bir çekirdek sürümüne geçmektir. Genel kapsam, çekirdek kararlılığı ve test uygulamaları ile tutarlı olarak, izole edilmiş taahhütleri kiraz toplamak yerine kararlı çekirdeklere yükseltmeyi vurgular.

NVD kaydı, düzeltme bağlamını izleyen kernel.org kaynaklarına referanslar içerir.

Özel bir Android çekirdeği çalıştırıyorsanız ve hemen yükseltme yapamıyorsanız, mühendislik yolu genellikle şöyledir: düzeltmeyi sürdürülen yama setinize geri aktarın ve Binder ağırlıklı iş yüklerinde doğrulayın. Ancak çoğu işletme için pragmatik seçim şudur: satıcı güncellemelerini tüketin (dağıtım/OEM/GKI kanalı) ve düzeltme kanıtlarını belgeleyin.

Triyaj Masası

SahaDeğer
CVECVE-2025-68260
BileşenRust Android Binder sürücüsü (rust_binder), Node::release / ölüm_listesi yol
Güvenlik açığı sınıfıYarış koşulu + güvenli olmayan müdahaleci liste işaretçisi bozulması
En kötü durum etkisiÇekirdek çökmesi / DoS (genel açıklama)
Maruziyet şunlara bağlıdırRust Binder etkin/seçili (ANDROID_BINDER_IPC_RUST, binder.impl)
NVD zenginleştirme"Analiz Bekleniyor" (beklemede olabilir)

Bağlam: Önceliklendirme için İlgili Çekirdek CVE'leri

CVE-2025-68260 halka açık bir şekilde çökme sınıfı olarak tanımlanmaktadır. Önceliklendirme için birçok kuruluş, daha net ayrıcalık etkisine sahip çekirdek CVE'leriyle kıyaslama yapar:

  • CVE-2019-2215 (Android Binder UAF / EoP): NVD, Binder use-after-free aracılığıyla bir ayrıcalık yükseltmesini tanımlar; Project Zero ayrıntılı analiz sağlar.
  • CVE-2022-0847 ("Kirli Boru"): yerel ayrıcalık yükseltme için yaygın olarak izlendi; CISA bir uyarı yayınladı.
  • CVE-2024-1086 (nf_tables UAF / LPE): NVD ve Red Hat, netfilter/nf_tables'daki bir use-after-free'den kaynaklanan LPE potansiyelini özetlemektedir.

Pratik çıkarım: Binder/Rust Binder aktif kullanımda olduğunda ve çökmeler iş üzerinde etkili olduğunda CVE-2025-68260'ı yüksek öncelikli olarak ele alın; aksi takdirde, "ilk Rust CVE" başlığının daha geniş çapta erişilebilir LPE sınıfı çekirdek sorunlarının yerini almasına izin vermeyin.

Penligent ile Müdahalenin Operasyonel Hale Getirilmesi

Yapılandırmaya bağlı çekirdek CVE'leri için darboğaz nadiren danışmanlığı okumaktır - "nerede maruz kaldık" ve "düzeltme gerçekten indi mi" sorularına savunulabilir, ölçeklenebilir yanıtlar üretmektir. Penligent, CVE-2025-68260'ı tekrarlanabilir bir kanıt iş akışına dönüştürerek bu döngüyü kolaylaştırabilir: varlıklar arasında çekirdek sürümlerini ve yapılandırma sinyallerini toplayın, ana bilgisayarları Rust Binder etkinleştirme ve binder.impl seçin ve destekleyici referanslarla birlikte denetime hazır bir iyileştirme raporu oluşturun. Bu yaklaşım, istismar için değil, doğrulama ve kapatma için tasarlanmıştır.

NVD: CVE-2025-68260
https://nvd.nist.gov/vuln/detail/CVE-2025-68260

Greg Kroah-Hartman bildirimi (çökme çerçeveleme; ilk Rust çekirdek CVE'si)
https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM

SecurityOnline kapsamı
https://securityonline.info/rusts-first-breach-cve-2025-68260-marks-the-first-rust-vulnerability-in-the-linux-kernel/

Linux için Rust: Android Bağlayıcı Sürücüsü (v6.18-rc1 ile birleştirildi)
https://rust-for-linux.com/android-binder-driver

Android kernel Kconfig (Binder Rust seçenekleri; binder.impl seçimi)
https://android.googlesource.com/kernel/common/+/refs/tags/android15-6.6-2024-07_r44/drivers/android/Kconfig

Android dokümanları: Binder IPC'ye genel bakış
https://source.android.com/docs/core/architecture/hidl/binder-ipc

NVD: CVE-2019-2215
https://nvd.nist.gov/vuln/detail/CVE-2019-2215

Project Zero RCA: CVE-2019-2215
https://googleprojectzero.github.io/0days-in-the-wild/0day-RCAs/2019/CVE-2019-2215.html

NVD: CVE-2022-0847
https://nvd.nist.gov/vuln/detail/CVE-2022-0847

CISA uyarısı: Kirli Boru
https://www.cisa.gov/news-events/alerts/2022/03/10/dirty-pipe-privilege-escalation-vulnerability-linux

NVD: CVE-2024-1086
https://nvd.nist.gov/vuln/detail/cve-2024-1086

Kırmızı Şapka: CVE-2024-1086
https://access.redhat.com/security/cve/cve-2024-1086

Gönderiyi paylaş:
İlgili Yazılar
tr_TRTurkish