Katalog CVE

CVE-2026-23307

ŚrednieCVSS 5.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux w funkcji ems_usb_read_bulk_callback() sterownika CAN ems_usb występuje problem z sprawdzaniem długości wiadomości. Podczas analizy danych w USB urb actual_length jest rozmiarem bufora przekazanego do sterownika, a nie transfer_buffer_length ustawianym przez sterownik jako maksymalny rozmiar bufora. Podczas parsowania wiadomości w ems_usb_read_bulk_callback() należy prawidłowo sprawdzać rozmiar zarówno na początku parsowania wiadomości, aby upewnić się, że jest wystarczająco duży dla oczekiwanej struktury, jak i na końcu wiadomości, aby upewnić się, że nie przekroczymy końca bufora dla następnej wiadomości.

Ocena ryzyka

Atakujący może wykorzystać podatność do wywołania przepełnienia bufora lub dostępu poza granicami, co może prowadzić do awarii systemu lub potencjalnie do wykonania dowolnego kodu w kontekście jądra. Ryzyko dotyczy systemów wykorzystujących sterownik CAN ems_usb.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę. Jeśli aktualizacja nie jest możliwa, rozważ wyłączenie lub ograniczenie użycia sterownika ems_usb.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: can: ems_usb: ems_usb_read_bulk_callback(): check the proper length of a message When looking at the data in a USB urb, the actual_length is the size of the buffer passed to the driver, not the transfer_buffer_length which is set by the driver as the max size of the buffer. When parsing the messages in ems_usb_read_bulk_callback() properly check the size both at the beginning of parsing the message to make sure it is big enough for the expected structure, and at the end of the message to make sure we don't overflow past the end of the buffer for the next message.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS