CVE-2026-80973
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: ALSA: 6fire: cihazdan gelen MIDI olay uzunluğu sınırlandırıldı usb6fire_comm_receiver_handler(), cihaz tarafından sağlanan bir uzunluk baytını kullanarak bir MIDI olayını iletirken herhangi bir sınırlandırma yapmamakta ve aktarımın bu kadar bayt teslim edip etmediğini kontrol etmemektedir: if (!urb->status) { if (rt->receiver_buffer[0] == 0x10) /* midi in event */ if (midi_rt) midi_rt->in_received(midi_rt, rt->receiver_buffer + 2, rt->receiver_buffer[1]); } receiver_buffer, 64 baytlık bir kzalloc() tamponudur (COMM_RECEIVER_BUFSIZE), dolayısıyla iki baytlık üstbilgiyi yalnızca 62 bayt takip eder. receiver_buffer[1], cihazın seçtiği bir u8 değeridir; bu nedenle 0x10 yanıtı veren ve 0xFF uzunluğunu belirten bir cihaz, snd_rawmidi_receive() fonksiyonunun 64 baytlık bir nesnenin ikinci baytından başlayarak 255 bayt okumasına neden olur. Tamponun ötesindeki baytlar, rawmidi okuma yolu aracılığıyla kullanıcı alanına (userspace) iletilir. urb->actual_length değeri de dikkate alınmadığından, kısa bir aktarım hem tip baytının hem de uzunluk baytının önceki değerlerinde kalmasına yol açar ve işleyici güncel olmayan veriler üzerinden işlem yapar. Alıcı URB, probe sırasında usb6fire_comm_init() üzerinden gönderilir, bu nedenle okuma işlemi herhangi bir kullanıcı eylemi olmaksızın takıldığında gerçekleşir; kullanıcı alanına iletim için ayrıca bir MIDI giriş alt akışının açık olması gerekir, çünkü usb6fire_midi_in_received() yalnızca rt->in ayarlı olduğunda snd_rawmidi_receive() fonksiyonunu çağırır. 7.2.0-rc5 (arm64) üzerinde KASAN, emüle edilmiş bir cihazdan gelen tek paketle: BUG: KASAN: slab-out-of-bounds in snd_rawmidi_receive Read of size 255 at addr ffff000009f64682 by task bash/183 __asan_memcpy snd_rawmidi_receive usb6fire_midi_in_received [snd_usb_6fire] usb6fire_comm_receiver_handler [snd_usb_6fire] Allocated by task 11: usb6fire_comm_init [snd_usb_6fire] usb6fire_chip_probe [snd_usb_6fire] The buggy address is located 2 bytes inside of allocated 64-byte region [ffff000009f64680, ffff000009f646c0) Uzunluk, üstbilgiyi takip eden bayt sayısını aştığında olay reddedilmeli ve aktarımın üstbilgi artı belirtilen miktarda baytı teslim etmiş olması şart koşulmalıdır. Alıcı URB, 64 baytlık bir transfer_buffer_length ile gönderildiğinden, gerçek bir cihaz bu 62 bayttan daha uzun bir olay teslim edemez ve geçerli hiçbir veri kaybı yaşanmaz. XBOW tarafından keşfedilmiş, Baul Lee <[email protected]> tarafından analiz edilmiştir.
Nasıl düzeltilir
- Linux Linuxc9204bc2ed2010e2469dbe5fce598878a37efd04, 2c590d5e1b1595d5c8fa0b72d2897423ce9985ca, 0c8a3c773823cf12abd39c480aed70e25c384630, 00e84a9ff2d43953ae261995cae94d46f4c307a6, 466e911bbbbb779bb06337e35a286e5ca7af16b3, 2a6f6fba3bd31d2e8c957fefa29156e35e5e75d5, 34816e2cfeabafb8eccf54687186ce25699e8363, a478893b59e36cfe7d77a76b352f2db55502e879 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | c6d43ba816d1cf1d125bfbfc938f2a28a87facf9 ≤ v < c9204bc2ed2010e2469dbe5fce598878a37efd04, c6d43ba816d1cf1d125bfbfc938f2a28a87facf9 ≤ v < 2c590d5e1b1595d5c8fa0b72d2897423ce9985ca, c6d43ba816d1cf1d125bfbfc938f2a28a87facf9 ≤ v < 0c8a3c773823cf12abd39c480aed70e25c384630, c6d43ba816d1cf1d125bfbfc938f2a28a87facf9 ≤ v < 00e84a9ff2d43953ae261995cae94d46f4c307a6, c6d43ba816d1cf1d125bfbfc938f2a28a87facf9 ≤ v < 466e911bbbbb779bb06337e35a286e5ca7af16b3, c6d43ba816d1cf1d125bfbfc938f2a28a87facf9 ≤ v < 2a6f6fba3bd31d2e8c957fefa29156e35e5e75d5, c6d43ba816d1cf1d125bfbfc938f2a28a87facf9 ≤ v < 34816e2cfeabafb8eccf54687186ce25699e8363, c6d43ba816d1cf1d125bfbfc938f2a28a87facf9 ≤ v < a478893b59e36cfe7d77a76b352f2db55502e879, 2.6.39 | c9204bc2ed2010e2469dbe5fce598878a37efd04, 2c590d5e1b1595d5c8fa0b72d2897423ce9985ca, 0c8a3c773823cf12abd39c480aed70e25c384630, 00e84a9ff2d43953ae261995cae94d46f4c307a6, 466e911bbbbb779bb06337e35a286e5ca7af16b3, 2a6f6fba3bd31d2e8c957fefa29156e35e5e75d5, 34816e2cfeabafb8eccf54687186ce25699e8363, a478893b59e36cfe7d77a76b352f2db55502e879 |
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.