CVE-2026-79976
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Powiązanie celu MCTP-over-I2C+GPIO w subsys/pmci/mctp/mctp_i2c_gpio_target.c emuluje mały plik pseudorejestru, w którym kontroler magistrali najpierw zapisuje numer rejestru, a następnie zapisuje lub odczytuje bajty ładunku. Wybrany rejestr (b->reg_addr) i flaga fazy danych (b->rxtx) nigdy nie zostały wyczyszczone, gdy kontroler wydał STOP I2C, więc po zakończeniu transferu cel nadal miał wybrany rejestr danych, podczas gdy bufor pakietu, do którego się odnosi, został już zużyty i ustawiony na NULL przez mctp_i2c_gpio_target_stop().
Kontroler na magistrali może ponownie wejść do tej samej gałęzi mctp_i2c_gpio_target_stop() z buforem NULL, używając dwóch zwykłych transakcji i bez uwierzytelniania: najpierw normalny zapis pakietu do MCTP_I2C_GPIO_RX_MSG_ADDR, po którym następuje STOP (który dostarcza i zwalnia b->rx_pkt), następnie transakcja gołego odczytu, po której następuje STOP. Nieudane wywołanie read_requested() pozostawia nieaktualny stan nienaruszony, a sterownik I2C nadal dostarcza wywołanie zwrotne STOP, które następnie wywołuje mctp_bus_rx() z pakietem NULL. Przypadek symetryczny występuje po stronie transmisji, gdzie stary wybór MCTP_I2C_GPIO_TX_MSG_ADDR dereferuje b->tx_pkt->end po wyczyszczeniu b->tx_pkt i dodatkowo sygnalizuje b->tx_complete po raz drugi, powodując odrzucenie następnego pakietu wychodzącego.
Wyłuskiwanie odbywa się w docelowej procedurze obsługi przerwań I2C, więc w przypadku dowolnego celu, który przechwytuje dostęp do adresu 0, wynikiem jest krytyczny wyjątek i zresetowanie lub zatrzymanie urządzenia — odmowa usługi spowodowana przez dowolne urządzenie, które może działać jako kontroler na współdzielonej magistrali zarządzania (na przykład przejęte oprogramowanie sprzętowe w równorzędnym punkcie końcowym MCTP lub na BMC). W częściach, w których adres 0 jest czytelny, wpływ zmniejsza się do zniekształconego bufora pakietów przekazywanego do stosu MCTP i utraty pakietów transmisyjnych. Nie jest zapisana żadna wartość kontrolowana przez osobę atakującą i nie została przekroczona żadna granica poufności ani integralności.
Poprawka resetuje b->reg_addr do MCTP_I2C_GPIO_INVALID_ADDR i kasuje b->rxtx przy każdym STOP, więc przed ponownym uruchomieniem jakiejkolwiek fazy danych należy wybrać nowy rejestr. Dotyczy to tylko kompilacji, które włączają eksperymentalny podsystem CONFIG_MCTP z CONFIG_MCTP_I2C_GPIO_TARGET=y.
>_ 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