Katalog CVE

CVE-2026-64565

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.17%

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

Streszczenie

W jądrze Linuxa w sterowniku ims-pcu występuje podatność heap-buffer-overflow w funkcji ims_pcu_process_data(). Funkcja przetwarza dane URB bajt po bajcie, ale nie sprawdza, czy indeks read_pos nie przekracza rozmiaru bufora. Złośliwe urządzenie USB może wysłać pakiet większy niż rozmiar bufora, co pozwala na nadpisanie read_pos i kontrolę indeksu, prowadząc do przepełnienia bufora na stercie i przejęcia przepływu sterowania.

Ocena ryzyka

Ryzyko obejmuje możliwość zdalnego wykonania kodu lub awarii systemu przez podłączenie złośliwego urządzenia USB, co może prowadzić do naruszenia integralności systemu.

Rekomendacja

Należy zaktualizować jądro Linuxa do wersji zawierającej poprawkę, która dodaje sprawdzanie granic dla read_pos.

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: Input: ims-pcu - fix heap-buffer-overflow in ims_pcu_process_data() The `ims_pcu_process_data()` processes incoming URB data byte by byte. However, it fails to check if the `read_pos` index exceeds IMS_PCU_BUF_SIZE. If a malicious USB device sends a packet larger than IMS_PCU_BUF_SIZE, `read_pos` will increment indefinitely. Moreover, since `read_pos` is located immediately after `read_buf`, the attacker can overwrite `read_pos` itself to arbitrarily control the index. This manipulated `read_pos` is subsequently used in `ims_pcu_handle_response()` to copy data into `cmd_buf`, leading to a heap buffer overflow. Specifically, an attacker can overwrite the `cmd_done.wait.head` located at offset 136 relative to `cmd_buf` in the `ims_pcu_handle_response()`. Consequently, when the driver calls `complete(&pcu->cmd_done)`, it triggers a control flow hijack by using the manipulated pointer. Fix this by adding a bounds check for `read_pos` before writing to `read_buf`. If the packet is too long, discard it, log a warning, and reset the parser state. [dtor: factor out resetting packet state, reset checksum as well]

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