Katalog CVE

CVE-2026-98612

Niskie ryzyko· EPSS 8%
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.19%

Percentyl 8 - wyżej niż 8% wszystkich znanych CVE

Streszczenie

W jądrze Linux w sterowniku USB catc funkcja catc_rx_done() sprawdzała długość pakietu względem całego transferu (urb->actual_length) zamiast pozostałych bajtów od pkt_start, przez co spreparowany nagłówek pakietu powodował odczyt poza bufor w skb_copy_to_linear_data(). Akceptowana była też długość poniżej ETH_HLEN, w tym zero, co prowadziło do odczytu nagłówka MAC z niezainicjalizowanego obszaru.

Ocena ryzyka

Może dojść do uszkodzenia pamięci jądra lub ujawnienia danych z niezainicjalizowanej pamięci, co potencjalnie umożliwia atakującemu destabilizację systemu lub wyciek informacji.

Rekomendacja

Zaktualizować jądro Linux do wersji zawierającej poprawkę w catc_rx_done() ograniczającą długość pakietu RX do pozostałych bajtów i odrzucającą nagłówki nie mieszczące się w transferze oraz długości poniżej nagłówka Ethernet.

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: net: usb: catc: bound the RX packet length in catc_rx_done() catc_rx_done() walks a multi-packet URB, reading a two-byte length from each packet header. Its bound, pkt_len > urb->actual_length, ignores the header offset and compares against the whole transfer rather than the bytes left from pkt_start, so a crafted packet header makes skb_copy_to_linear_data() read past the buffer. A length below ETH_HLEN is also accepted, including zero, and eth_type_trans() then reads a MAC header from the uninitialised tailroom of a shorter skb. The is_f5u011 branch takes its length straight from the transfer, so a zero-length URB reaches the same path. Track the bytes remaining from the current packet, and reject a header that does not fit, a length past what is left, and a length below an Ethernet header. A transfer shorter than an Ethernet header, including a zero-length one, previously became a runt skb passed to netif_rx() and counted as received; it is now counted in rx_length_errors and ends the walk.

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