Średni Odebrany

CVE-2026-17051

opublikowano:
modyfikacja:
Ocena CVSS
6.0
Średni · v3.1
wektor: CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

Sterownik Intel SEDI IPM (międzyprocesorowa skrzynka pocztowa) w sterownikach/ipm/ipm_sedi.c obsługuje przerwanie wiadomości przychodzącej w ipm_event_dispose(). Odczytał zapisany rejestr dzwonka do drzwi, wyodrębnił długość ładunku za pomocą IPC_HEADER_GET_LENGTH() i przekazał tę długość bezpośrednio do sedi_ipc_read_msg(), aby skopiować wiadomość do struktury ipm_sedi_context.incoming_data_buf, bez sprawdzania jej z rozmiarem bufora. Pole długości dzwonka ma szerokość 10 bitów (IPC_HEADER_LENGTH_MASK to 0x03FF), więc może zakodować do 1023 bajtów, natomiast incoming_data_buf to IPC_DATA_LEN_MAX (128) bajtów. Sprawdzanie granic w bazowej funkcji HAL sedi_ipc_read_msg() to DBG_CHECK, które kompiluje się, chyba że ustawiono CONFIG_DEBUG, więc w obrazie produkcyjnym nie pozostało żadne sprawdzenie.

Rejestr dzwonka do drzwi jest zapisywany przez procesor równorzędny po drugiej stronie łącza IPC — w przypadku obiektów docelowych intel_ish_5_* sterownik ISH procesora hosta, do którego można uzyskać dostęp poprzez okno rejestru mapowanego na pamięć urządzenia. Oprogramowanie po stronie hosta z dostępem na poziomie sterownika lub surowym dostępem do BAR może zatem ustawić długość do 1023 i spowodować, że procedura obsługi przerwań będzie kopiować daleko poza bufor docelowy. Ścieżka, której dotyczy problem, wymaga, aby aplikacja zarejestrowała wywołanie zwrotne odbioru IPM za pośrednictwem ipm_register_callback(), co jest normalnym trybem użytkowania sterownika.

Rezultatem jest zapis poza granicami do 895 bajtów w pamięci statycznej (.bss), wykonywany w kontekście przerwań. Przepełnienie najpierw blokuje resztę struktury ipm_sedi_context — w tym k_sem i k_mutex używane przez ścieżkę transmisji, której kolejki oczekiwania zawierają wskaźniki list samoodwołujących się — a następnie sąsiadujące dane statyczne, powodując uszkodzenie struktury danych jądra i prymitywną awarię. Przepełnione bajty są odczytywane z rejestrów znajdujących się za oknem komunikatu, których część jest programowalna równorzędnie. Poprawka odrzuca każdy dzwonek do drzwi, którego zakodowana długość przekracza IPC_DATA_LEN_MAX, logując go i potwierdzając dzwonek do drzwi, aby partner nie czekał.

>_ Słabości (CWE)

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org