CVE-2026-53172
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 3 - wyżej niż 3% wszystkich znanych CVE
Streszczenie
W sterowniku Linux kernel dla akceleratora Ethos-U (accel/ethosu) wykryto podatność polegającą na błędzie w parserze strumienia komend. Funkcja NPU_SET_IFM_REGION używa maski 0x7f zamiast 0x7, co pozwala na indeksowanie poza zakresem tablicy region_size[] (rozmiar 8). Atakujący z przestrzeni użytkownika może przez odpowiednio spreparowane wywołanie zapisać dane poza przydzielonym buforem, powodując uszkodzenie sąsiednich danych sterty jądra.
Ocena ryzyka
Podatność umożliwia lokalnemu atakującemu z uprawnieniami użytkownika zapis poza granicami bufora w jądrze, co może prowadzić do eskalacji uprawnień, wycieku danych lub destabilizacji systemu.
Rekomendacja
Należy niezwłocznie zaktualizować jądro Linuksa do wersji zawierającej poprawkę (commit zmieniający maskę z 0x7f na 0x7). Jeśli aktualizacja nie jest możliwa, należy ograniczyć dostęp do interfejsu sterownika Ethos-U tylko zaufanym procesom.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: accel/ethosu: fix IFM region index out-of-bounds in command stream parser NPU_SET_IFM_REGION extracts the region index with param & 0x7f, giving a maximum value of 127. However region_size[] and output_region[] in struct ethosu_validated_cmdstream_info are both sized to NPU_BASEP_REGION_MAX (8), giving valid indices [0..7]. Every other region assignment in the same switch uses param & 0x7: NPU_SET_OFM_REGION: st.ofm.region = param & 0x7; NPU_SET_IFM2_REGION: st.ifm2.region = param & 0x7; NPU_SET_WEIGHT_REGION: st.weight[0].region = param & 0x7; NPU_SET_SCALE_REGION: st.scale[0].region = param & 0x7; The 0x7f mask on IFM is inconsistent and appears to be a typo. feat_matrix_length() and calc_sizes() use the region index directly as an array subscript into the kzalloc'd info struct: info->region_size[fm->region] = max(...); A userspace caller supplying NPU_SET_IFM_REGION with param > 7 causes a write up to 127*8 = 1016 bytes past the start of region_size[], corrupting adjacent kernel heap data. Fix by applying the same & 0x7 mask used by all other region assignments.

