CVE-2026-80828
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: ALSA: usb-audio: sistem-resume hataları sonrası tam temizleme Hatalı bir sistem resume işlemi, kartı yeniden başlatmaya kadar kullanılamaz hale getirebilir. snd_usb_pcm_resume() veya snd_usb_mixer_resume() başarısız olduğunda usb_audio_resume() fonksiyonu err_out kısmına atlar. Hata yolu, D0 durumunu geri yükleyen ve chip->num_suspended_intf değerini azaltan out: bloğunu atlar. Kart SNDRV_CTL_POWER_D3hot durumunda kaldığından, sonraki kontrol erişimleri snd_power_ref_and_wait() içerisinde engellenir. USB çekirdeği bir arayüz resume callback hatası günlüğe kaydeder. Bu callback işlemini tekrar denemez, bu nedenle sonraki bir callback atlanan temizleme işlemini tamamlayamaz. usb_audio_suspend(), başarıyla dönmeden önce num_suspended_intf değerini artırır. Bir sistem-resume callback'i, bir bileşen resume işlemi başarısız olsa bile sistem-suspend sayısını tüketmelidir. Aksi takdirde, askıda kalan sayı sonraki suspend ve resume döngülerini bozar. Bu temizleme işlemini runtime-resume hatalarına uygulamayın. Runtime PM, başka bir suspend callback'ine ihtiyaç duymadan -EAGAIN veya -EBUSY hatalarını tekrar deneyebilir. Sayacın, askıya alınmış olan o arayüzü tanımlamaya devam etmesi gerekir. Diğer runtime-resume hataları, PM çekirdeğindeki runtime_error durumunu kilitler ve anlık bir callback tekrarına neden olmaz. Sistem-resume hata yolunun her iki kısmı da uzun süredir mevcuttur. 88a8516a2128a ("ALSA: usbaudio: implement USB autosuspend") commit'i, D0 geri yüklemesinin ötesinde err_out kısmını tanıtmıştır. Daha sonra 862b2509d157c ("ALSA: usb-audio: Fix inconsistent card PM state after resume") commit'i, num_suspended_intf-- işlemini out: bloğuna taşımıştır. Hata yolu şu anda her iki işlemi de atlamaktadır. Hata yoluna ulaşmak için üçüncü taraf bir koda ihtiyaç yoktur. snd_usb_mixer_resume(), mikser durum URB'sine sahip cihazlar için usb_submit_urb() sonucunu döndüren snd_usb_mixer_activate() ile sona erer. Bunun mixer->private_resume kancası ayrıca scarlett2_init_notify() üzerinden başarısız olabilir. snd_usb_pcm_resume(), bir UAC3 güç alanına SET_CUR isteği gönderir. Cihaz isteği durdurduğunda -EPIPE veya -EIO döndürebilir. Bir bileşen hatasını yalnızca system_suspend sıfırdan farklı olduğunda out: üzerinden yönlendirin. Runtime-resume hatalarını err_out üzerinden döndürmeye devam edin. Sonraki bileşen resume aşamaları atlanmış olarak kalır. Orijinal hata hala USB çekirdeğine ulaşır. Cihaz kurtulmadıysa sonraki bir aktarım başarısız olabilir. Sistem-resume hatasını, ağaç dışı (out-of-tree) bir tanısal mikser resume kancasına sahip bir Audient iD14 MkI üzerinde yeniden ürettim. Yamalanmamış çekirdek üzerine enjekte edilen bir -EIO, kontrol okuyucularını yeniden başlatmaya kadar snd_power_ref_and_wait() içinde kesilemez uykuda bıraktı. Bu yama ile aynı hata kontrol erişimini geri yükledi. Hata enjeksiyonunu devre dışı bıraktıktan sonra ikinci bir sistem suspend ve resume işlemi de başarıyla gerçekleşti.
Nasıl düzeltilir
- Linux Linux3fa521c3c54b42e16cad8ade76551113a783752b, 3f06f3f5b16212f180764654a9398ff5f7a855c8, f1c05c41d07b874635d681ae328d13ec550470c5, 5a625fc2284e35f33693efd9534aebaca3b005d4, 6d3e202670b819c414076a5d07dffac8a39274ad, 6c94877b6bab9185898bcad4b082ff5592558921, d1f643b1c0258bd519146f7a342bbb394d413912, 1739a976312e110c93a8dee66a1cdf893a1b187e ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 88a8516a2128a6d078a106ead48092240e8a138f ≤ v < 3fa521c3c54b42e16cad8ade76551113a783752b, 88a8516a2128a6d078a106ead48092240e8a138f ≤ v < 3f06f3f5b16212f180764654a9398ff5f7a855c8, 88a8516a2128a6d078a106ead48092240e8a138f ≤ v < f1c05c41d07b874635d681ae328d13ec550470c5, 88a8516a2128a6d078a106ead48092240e8a138f ≤ v < 5a625fc2284e35f33693efd9534aebaca3b005d4, 88a8516a2128a6d078a106ead48092240e8a138f ≤ v < 6d3e202670b819c414076a5d07dffac8a39274ad, 88a8516a2128a6d078a106ead48092240e8a138f ≤ v < 6c94877b6bab9185898bcad4b082ff5592558921, 88a8516a2128a6d078a106ead48092240e8a138f ≤ v < d1f643b1c0258bd519146f7a342bbb394d413912, 88a8516a2128a6d078a106ead48092240e8a138f ≤ v < 1739a976312e110c93a8dee66a1cdf893a1b187e, 2.6.39 | 3fa521c3c54b42e16cad8ade76551113a783752b, 3f06f3f5b16212f180764654a9398ff5f7a855c8, f1c05c41d07b874635d681ae328d13ec550470c5, 5a625fc2284e35f33693efd9534aebaca3b005d4, 6d3e202670b819c414076a5d07dffac8a39274ad, 6c94877b6bab9185898bcad4b082ff5592558921, d1f643b1c0258bd519146f7a342bbb394d413912, 1739a976312e110c93a8dee66a1cdf893a1b187e |
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.
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.