Katalog CVE

CVE-2026-63892

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.22%

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

Streszczenie

W jądrze Linux w sterowniku Thunderbolt wykryto podatność polegającą na niedostatecznym sprawdzeniu długości wpisu (entry->length) w funkcji __tb_property_parse_dir(). Gdy długość jest mniejsza niż 4, dochodzi do odczytu poza zakresem pamięci (OOB) oraz niedomiaru rozmiaru (size_t underflow), co może prowadzić do awarii systemu lub potencjalnego wykonania kodu.

Ocena ryzyka

Atakujący z dostępem do lokalnego interfejsu Thunderbolt może wysłać spreparowane dane, powodując odczyt poza przydzielonym buforem lub zapętlenie się funkcji, co grozi zawieszeniem systemu (kernel oops) lub eskalacją uprawnień.

Rekomendacja

Należy niezwłocznie zaktualizować jądro Linux do wersji zawierającej poprawkę odrzucającą dir_len < 4 przed kopiowaniem UUID. Dla systemów produkcyjnych zaleca się zastosowanie łatki bezpieczeństwa dostępnej w repozytorium dystrybucji.

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: thunderbolt: property: Reject dir_len < 4 to prevent size_t underflow On the non-root path, __tb_property_parse_dir() takes dir_len from entry->length (u16 widened to size_t). Two distinct OOB conditions follow when entry->length < 4: 1. The non-root path begins with kmemdup(&block[dir_offset], sizeof(*dir->uuid), ...) which always reads 4 dwords from dir_offset. tb_property_entry_valid() only enforces dir_offset + entry->length <= block_len, so a crafted entry with dir_offset close to the end of the property block and entry->length in 0..3 passes that gate but lets the UUID copy run off the block (e.g. dir_offset = 497, dir_len = 3 in a 500-dword block reads block[497..501]). 2. After the kmemdup, content_len = dir_len - 4 underflows size_t to ~SIZE_MAX, nentries becomes SIZE_MAX / 4, and the entry walk runs OOB on each iteration until an entry fails validation or the kernel oopses on an unmapped page. Reject dir_len < 4 on the non-root path *before* the UUID kmemdup, which closes both holes. Also move INIT_LIST_HEAD(&dir->properties) up to immediately after the dir allocation so the new error-return path (and the existing uuid-alloc failure path) calling tb_property_free_dir() sees a walkable list rather than the zero-initialized NULL next/prev that list_for_each_entry_safe() would oops on.

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