CVE-2026-64363

Yüksek

Açıklama

Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: HID: appleir: remove() fonksiyonundaki bekleyen key_up_timer üzerindeki UAF hatası düzeltildi appleir_remove(), timer_delete_sync() işleminden önce hid_hw_stop() işlemini yürütür. hid_hw_stop(); hid_disconnect() -> hidinput_disconnect() -> input_unregister_device() aracılığıyla HID giriş aygıtının kaydını senkronize olarak siler; bu durum, kullanıcı alanı tarafından açık tutulan bir tutamaç olmadığında son referansı düşürür ve temel input_dev yapısını serbest bırakır. key_up_tick(), appleir->input_dev değerini okur ve üzerinde input_report_key() / input_sync() çağrılarını yapar. Zamanlayıcı, her tuşa basma (keydown) ve tuş tekrarlama raporunda appleir_raw_event() üzerinden HZ/8 (~125 ms) zaman aşımı ile kurulur. Eğer cihaz bağlantısı kesilmeden kısa süre önce bir tuşa basılmışsa, zamanlayıcı hid_hw_stop() tarafından input_dev serbest bırakıldıktan sonra ancak kaldırma işlemi tamamlanmadan önce tetiklenebilir. Basit bir yeniden sıralama yeterli değildir. Zamanlayıcı boşaltma işleminin başa alınması, hid_hw_stop() sırasında çalışan bir USB URB tamamlamasının (raw_event), mod_timer() çağrısı yaparak zamanlayıcıyı yeniden kurabileceği bir pencere bırakır; bu durumda zamanlayıcı, hidinput_disconnect() input_dev yapısını serbest bıraktıktan sonra tetiklenir. Aynı URB-tamamlama penceresi ayrıca raw_event()'ın doğrudan key_up(), key_down() ve battery_flat() fonksiyonlarına ulaşmasına izin verir ve bunların tümü appleir->input_dev referansını çözer. Mevcut spinlock ile korunan struct appleir yapısına bir 'removing' bayrağı eklenmiştir. appleir_remove(), kilit altında bu bayrağı ayarlar ve ardından timer_shutdown_sync() ile zamanlayıcıyı kapatır; bu işlem hem mevcut geri çağırmaları boşaltır hem de sonraki mod_timer() çağrılarını kalıcı olarak devre dışı bırakır. appleir_raw_event() ve key_up_tick(), bayrak ayarlanmışsa işlemi erken sonlandırır, böylece remove() kaldırma işlemine başladıktan sonra hiçbir yol zamanlayıcıyı kuramaz, çalıştıramaz veya appleir->input_dev referansını çözemez. appleir_raw_event()'ın keyrepeat ve flatbattery dalları daha önce spinlock tutmadan giriş katmanını çağırıyordu; bayrak kontrolünün tanımlı olması için artık kilit tutulmaktadır. Bu durum tesadüfen, keyrepeat dalındaki appleir->current_key üzerindeki önceden var olan bir okuma tarafı yarış durumunu da kapatır. Bu hata yapısal olarak 4db2af929279 ("HID: appletb-kbd: fix UAF in inactivity-timer cleanup path") commit'inin benzeridir ve sürücü tanıtıldığından beri mevcuttur.

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux Kernel
Yayın25 Tem 2026
İlk görülme25 Tem 2026

Nasıl düzeltilir

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel3.10 ≤ v < 5.10.261, 5.11 ≤ v < 5.15.212, 5.16 ≤ v < 6.1.178, 6.2 ≤ v < 6.6.145, 6.7 ≤ v < 6.12.97, 6.13 ≤ v < 6.18.39, 6.19 ≤ v < 7.1.4, 7.25.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.97, 6.18.39, 7.1.4

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.