Odebrany

CVE-2026-98312

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

ALSA: 6fire: napraw zapis OOB na podstawie długości ISO zgłoszonej przez urządzenie

usb6fire_pcm_in_urb_handler() określa rozmiar każdego wychodzącego pakietu izochronicznego jako
(actual_length - 4) / (in_n_analog << 2) * (out_n_analog << 2) + 4, gdzie
faktyczna długość to długość bez znaku, którą urządzenie zgłosiło dla dopasowania
W pakiecie. Pakiet zakończony statusem 0 i rzeczywista długość < 4 owinięć
odejmowanie do 0x7fffffc; pakiet izochroniczny o zerowej długości jest legalny
na magistrali, a poprzednia pętla odrzuca tylko status niezerowy. Suma
osiąga memset() na out_urb->buffer, obiekcie o rozmiarze 4832 bajtów
kcalloc(PCM_MAX_PACKET_SIZE, PCM_N_PACKETS_PER_URB).

Nawet bez zawijania wynik jest poza zakresem: przy 88,2/96 kHz
Skalowanie 4 wejścia/6 wyjścia zamienia pełny 420-bajtowy pakiet IN w 628, czyli osiem
pakiety obejmują 5024 bajty tego bufora. usb_submit_urb() odrzuca
zbyt długi deskryptor tylko po memset() i
Uruchomiono kopię danych PCM użytkownika usb6fire_pcm_playback().

Strzeż odejmowania, tak jak robi to już rodzeństwo usb6fire_pcm_capture(),
i ogranicz liczbę ramek do tego, co mieści się w rt->out_packet_size, OUT
wMaxPacketSize punktu końcowego. Ogranicza to total_length przez rozmiar bufora
zachowując przy tym długość każdego pakietu dostosowaną do całej ramki wyjściowej.

BŁĄD: KASAN: poza zakresem w usb6fire_pcm_in_urb_handler (sound/usb/6fire/pcm.c:338)
Zapisz rozmiar 18446744073709551456 pod adresem ffff88802a3d0000 za pomocą zadania vhci_rx/5018
Zadzwoń do śledzenia:
dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120)
print_report (mm/kasan/report.c:378 mm/kasan/report.c:482)
kasan_report (mm/kasan/report.c:595)
kasan_check_range (mm/kasan/generic.c:186 mm/kasan/generic.c:200)
__asan_memset (mm/kasan/cień.c:84)
usb6fire_pcm_in_urb_handler (dźwięk/usb/6fire/pcm.c:338)
__usb_hcd_giveback_urb (sterowniki/usb/core/hcd.c:1657)
usb_hcd_giveback_urb (sterowniki/usb/core/hcd.c:1741)
vhci_rx_loop (sterowniki/usb/usbip/vhci_rx.c:107 sterowniki/usb/usbip/vhci_rx.c:242)
kthread (jądro/kthread.c:436)
ret_from_fork (arch/x86/kernel/process.c:158)
ret_from_fork_asm (arch/x86/entry/entry_64.S:245)

Przydzielone przez zadanie 10:
__kmalloc_cache_noprof (mm/slub.c:5563)
usb6fire_pcm_init (dźwięk/usb/6fire/pcm.c:560 dźwięk/usb/6fire/pcm.c:595)
usb6fire_chip_probe (dźwięk/usb/6fire/chip.c:133)
interfejs_sondy_usb (sterowniki/usb/rdzeń/sterownik.c:399)

Błędny adres należy do obiektu pod adresem ffff88802a3d0000
który należy do pamięci podręcznej kmalloc-8k o rozmiarze 8192
Błędny adres znajduje się w odległości 0 bajtów
Region 4832 bajtów [ffff88802a3d0000, ffff88802a3d12e0)
Panika jądra – brak synchronizacji: krytyczny wyjątek w przerwaniu

>_ 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