Niski Odebrany

CVE-2026-79978

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

>_ Opis

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

Wywołanie zwrotne zakończenia przesyłania strumieniowego RTIO adxl345_process_fifo_samples_cb() w sterownikach/sensor/adi/adxl345/adxl345_stream.c ogranicza ilość danych FIFO, które będzie raportować (read_len = MIN(fifo_bytes, buf_avail)) do miejsca faktycznie zwróconego przez rtio_sqe_rx_buf(), ale następnie umieszcza je w kolejce 6-bajtowa magistrala odczytywana na sprzętowy wpis FIFO z kolejnymi przesunięciami od read_buf, ograniczona przez liczbę wpisów zgłaszaną przez urządzenie, a nie przez ograniczenie. Gdy przydzielony bufor jest mniejszy niż pełna partia, sterownik zapisuje do 186 bajtów po zakończeniu alokacji; wada towarzysząca pozostawiła dane->fifo_total_bytes niezresetowane na początku partii, więc przerwany lub zawierający błąd łańcuch może pozostawić nieaktualne przesunięcie zapisu, które wypycha zapisy następnej partii również poza granice.

Krótki bufor jest oczekiwanym, pierwszorzędnym wynikiem działania alokatora RTIO: rtio_block_pool_alloc() przesuwa żądany rozmiar w dół o jeden blok na raz, aż będzie dostępny ciągły przebieg, a sterownik żąda jedynie sizeof(struct adxl345_fifo_data) + 6 bajtów jako minimum. Dowolna konfiguracja przesyłania strumieniowego, której ziarnistość bloku pamięci jest mniejsza niż pełna partia FIFO (204 bajty) — na przykład RTIO_DEFINE_WITH_MEMPOOL(sensor_read_rtio, 8, 8, 32, 64, 4) powłoki czujnika używana przez strumień czujnika <dev> na fifo_wm włącznie lub przykład strumieniowania 16-bajtowego bloku w dokumentacji — przyjmuje tę ścieżkę za każdym razem, gdy pula jest pofragmentowana lub wątek pochłaniający zostaje w tyle.

Zapisy poza zakresem są wykonywane przez backend I2C/SPI RTIO (DMA w wielu układach SoC) do współdzielonej puli bloków RTIO, uszkadzając sąsiednie aktywne bufory lub, w przypadku puli mniejszej niż jedna partia, pamięć poza samą pulą. Zapisane bajty to próbki akcelerometru, a miejsce docelowe następuje po alokacji, więc nie ma kontrolowanego prymitywnego uszkodzenia: realistyczny skutek to ciche uszkodzenie danych innych konsumentów RTIO lub awaria. Osiągnięcie tego wymaga płytki z ADXL345 z okablowaniem przerwań, zbudowanej z CONFIG_ADXL345_STREAM, a także głodzenia puli buforów, które może wywołać współistniejące lokalne obciążenie, ale które pojawia się również spontanicznie pod obciążeniem; nie ma ścieżki sieciowej, USB ani radiowej do tego kodu.

>_ 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