CVE-2026-80973
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
ALSA: 6fire: ograniczona długość zdarzenia MIDI z urządzenia
usb6fire_comm_receiver_handler() przekazuje zdarzenie MIDI przy użyciu długości
bajt dostarczany przez urządzenie, bez ograniczeń i bez sprawdzania, czy transfer
dostarczył tyle bajtów:
if (!urb->status) {
if (rt->receiver_buffer[0] == 0x10) /* midi w zdarzeniu */
jeśli (midi_rt)
midi_rt->in_received(midi_rt,
rt->bufor_odbiornika + 2,
rt->bufor_odbiornika[1]);
}
bufor_odbiornika to 64-bajtowy bufor kzalloc() (COMM_RECEIVER_BUFSIZE), więc
po dwubajtowym nagłówku znajdują się tylko 62 bajty. bufor_odbiornika[1] to u8
urządzenie wybiera, a więc urządzenie, które odpowiada 0x10 i długością 0xFF
sprawia, że snd_rawmidi_receive() odczytuje 255 bajtów, zaczynając od dwóch bajtów w a
Obiekt 64-bajtowy. Bajty za buforem są przekazywane do przestrzeni użytkownika
poprzez ścieżkę odczytu rawmidi.
urb->actual_length również nie jest konsultowany, więc następuje krótki transfer
zarówno bajt typu, jak i bajt długości przy ich poprzednich wartościach oraz
moduł obsługi działa na nieaktualnych danych.
Adres URB odbiornika jest przesyłany z usb6fire_comm_init() w sondzie, więc plik
odczyt odbywa się na wtyczce bez żadnej akcji użytkownika; przesyłanie również do przestrzeni użytkownika
potrzebuje otwartego podstrumienia wejściowego MIDI, ponieważ usb6fire_midi_in_received()
wywołuje funkcję snd_rawmidi_receive() tylko wtedy, gdy ustawiono rt->in.
KASAN na 7.2.0-rc5 (arm64), pojedynczy pakiet z emulowanego urządzenia:
BŁĄD: KASAN: płyta poza granicami w snd_rawmidi_receive
Odczytaj rozmiar 255 pod adresem ffff000009f64682 przez zadanie bash/183
__asan_memcpy
snd_rawmidi_receive
usb6fire_midi_in_received [snd_usb_6fire]
usb6fire_comm_receiver_handler [snd_usb_6fire]
Przydzielone przez zadanie 11:
usb6fire_comm_init [snd_usb_6fire]
sonda usb6fire_chip_sonda [snd_usb_6fire]
Błędny adres znajduje się 2 bajty wewnątrz
przydzielony region 64-bajtowy [ffff000009f64680, ffff000009f646c0)
Odrzuć zdarzenie, gdy długość przekracza bajty następujące po
nagłówek i wymagaj, aby transfer dostarczył nagłówek plus to
wiele bajtów. Odbiornik URB jest przesyłany z 64 bajtami
transfer_buffer_length, więc oryginalne urządzenie nie może dostarczyć zdarzenia
dłuższy niż te 62 bajty i nic ważnego nie jest usuwane.
Odkryte przez XBOW, sprawdzone przez Baula Lee <[email protected]>
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org