CVE-2026-80824
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: usb: usbfs: usbdev_release() fonksiyonundaki usb_device serbest bırakıldıktan sonra kullanım (use-after-free) hatası düzeltildi usbdev_release(), tamamlanan asenkron URB listesini boşaltmadan önce struct usb_device referansını bırakır; ancak bu boşaltma yolu aynı nesne üzerinden geri okuma yapar: free_async(), tamponu usbfs mmap() bölgesinden gelen herhangi bir URB için dec_usb_memory_use_count() fonksiyonunu çağırır ve bu fonksiyonun ilk ifadesi bus_to_hcd(ps->dev->bus) şeklindedir. Bir bağlantı kesilmesinden sonra usbfs referansı son referans olabilir; bu durumda usb_put_dev() cihazı serbest bırakır ve ardından gelen döngü, serbest bırakılan belleğin 80. ofsetini okuyarak sonucu bir struct usb_hcd * olarak kullanır, hcd_buffer_free_pages() ise daha sonra bu referansı çözer. Bu durum, bir /dev/bus/usb düğümüne okuma/yazma erişimi olan yetkisiz bir işlem tarafından tetiklenebilir: fd'yi mmap() ile eşleyin, eşleme içinde bir tamponla bir URB gönderin, cihazın çıkarılmasını bekleyin, ardından munmap() yapın ve kapatın. Bu bir yarış durumu (race condition) olmaktan ziyade her denemede yeniden üretilir çünkü canlı bir MAP_SHARED vma, struct file üzerinde bir referans tutar; böylece son vma gidene kadar usbdev_release() çalışamaz ve dec_usb_memory_use_count() fonksiyonunun serbest bırakma dalı her zaman yürütülür. BUG: KASAN: slab-use-after-free in dec_usb_memory_use_count+0x3ae/0x410 Read of size 8 at addr ffff8880122ee050 by task poc/769 CPU: 1 UID: 1000 PID: 769 Comm: poc Tainted: G B 6.12.94 #3 Call Trace: dec_usb_memory_use_count+0x3ae/0x410 free_async+0x2aa/0x4f0 usbdev_release+0x375/0x460 __fput+0x3ea/0xb50 __x64_sys_close+0x86/0x100 Allocated by task 11: usb_alloc_dev+0x55/0xd90 hub_event+0x2524/0x43d0 Freed by task 769: kfree+0x121/0x360 device_release+0xd2/0x280 usb_put_dev+0x23/0x30 usbdev_release+0x2d8/0x460 Cihaz referansı bunun yerine boşaltma döngüsünden sonra serbest bırakılmıştır. İki nokta arasında referansın bırakılmış olmasını gerektiren hiçbir işlem yoktur.
Nasıl düzeltilir
- Linux Linux0a960b88c5979f853019d4dc4957dfbeeb193440, 96f5520fc9a5e4bbf77ac93c9d5ce502f597e6cf, bd4bffc621a8cb2f4d9ed9b6447415de524a3bef, 65879e0a452ca2a234b9475e0c11aff7a4343738, b3cde26a66b04f1d90ed0b675899c88b4e49d424, 5f08c45bdcfd28d1171de38c5ef29fc89a76eedc, 7f0278e474c4d1c4457974ff1137cc385c944ab3, 47a7f98fbb5006d46d15a3a210ffdc61448a4f19, 0dd68b5d01d022fc9c5e71c82a82b0a94d3d0671 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | f7d34b445abc00e979b7cf36b9580ac3d1a47cd8 ≤ v < 0a960b88c5979f853019d4dc4957dfbeeb193440, f7d34b445abc00e979b7cf36b9580ac3d1a47cd8 ≤ v < 96f5520fc9a5e4bbf77ac93c9d5ce502f597e6cf, f7d34b445abc00e979b7cf36b9580ac3d1a47cd8 ≤ v < bd4bffc621a8cb2f4d9ed9b6447415de524a3bef, f7d34b445abc00e979b7cf36b9580ac3d1a47cd8 ≤ v < 65879e0a452ca2a234b9475e0c11aff7a4343738, f7d34b445abc00e979b7cf36b9580ac3d1a47cd8 ≤ v < b3cde26a66b04f1d90ed0b675899c88b4e49d424, f7d34b445abc00e979b7cf36b9580ac3d1a47cd8 ≤ v < 5f08c45bdcfd28d1171de38c5ef29fc89a76eedc, f7d34b445abc00e979b7cf36b9580ac3d1a47cd8 ≤ v < 7f0278e474c4d1c4457974ff1137cc385c944ab3, f7d34b445abc00e979b7cf36b9580ac3d1a47cd8 ≤ v < 47a7f98fbb5006d46d15a3a210ffdc61448a4f19, f7d34b445abc00e979b7cf36b9580ac3d1a47cd8 ≤ v < 0dd68b5d01d022fc9c5e71c82a82b0a94d3d0671, 4.6 | 0a960b88c5979f853019d4dc4957dfbeeb193440, 96f5520fc9a5e4bbf77ac93c9d5ce502f597e6cf, bd4bffc621a8cb2f4d9ed9b6447415de524a3bef, 65879e0a452ca2a234b9475e0c11aff7a4343738, b3cde26a66b04f1d90ed0b675899c88b4e49d424, 5f08c45bdcfd28d1171de38c5ef29fc89a76eedc, 7f0278e474c4d1c4457974ff1137cc385c944ab3, 47a7f98fbb5006d46d15a3a210ffdc61448a4f19, 0dd68b5d01d022fc9c5e71c82a82b0a94d3d0671 |
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.