Wysoki Odebrany

CVE-2026-19736

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

>_ Opis

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

Sterownik entropii NXP MCUX TRNG w sterownikach/entropy/entropy_mcux_trng.c przekazał liczbę bajtów obiektu wywołującego bezpośrednio do procedury SDK dostawcy TRNG_GetRandomData(). Na częściach i.MX RT5xx i RT6xx SDK kompiluje swój wariant TRNG_SW_HEALTH_TESTS, który zawsze kopiuje całe 32-bitowe słowa i rysuje entropię zaokrągloną w górę do wielokrotności 128 bajtów. Jego strażnik „bufor wywołującego jest pełny” testuje dataSize == 0, więc żądanie, którego długość nie jest wielokrotnością czterech, powoduje, że dataSize przekracza zero, a zestaw SDK kontynuuje zapisywanie w buforze wywołującego dla całej ekstrakcji: 1-bajtowe żądanie skutkuje zapisanymi 128 bajtami, a każda długość niebędąca wielokrotnością słów przekracza maksymalnie 127 bajtów.

entropy_get_entropy() jest wywołaniem systemowym, a jego weryfikator w sterownikach/entropy/entropy_handlers.c sprawdza tylko żądaną długość za pomocą K_SYSCALL_MEMORY_WRITE(). Po włączeniu CONFIG_USERSPACE nieuprzywilejowany wątek trybu użytkownika, któremu jedynie przyznano urządzenie entropijne, może zatem wybrać zarówno adres docelowy, jak i długość, np. 1, i spowodować, że jądro zapisze do 127 bajtów poza regionem, który udowodnił, że jest właścicielem. Na tych procesorach Cortex-M33 nie ma MMU, więc partycje użytkownika i dane jądra współdzielą jedną pamięć SRAM, a przepełnienie może wylądować w sąsiednim stanie jądra. Na ten sam defekt z trybu jądra wpływa każdy obiekt wywołujący żądający długości innej niż wielokrotna, włączając w to funkcję getentropy() oraz, w kompilacjach, w których sys_csrand_get()/sys_rand_get() zwracają się do generatora sprzętowego, sys_rand8_get() i sys_rand16_get().

Skutkiem jest uszkodzenie pamięci do 127 bajtów bezpośrednio po dostarczonym buforze — zazwyczaj stos wywołującego w trybie jądra lub pamięć poza partycją wywołującego podczas przejścia przez wywołanie systemowe. Przesunięcie przepełnienia jest w pełni określone przez żądaną długość i dlatego jest deterministyczne, podczas gdy zapisana treść jest niekontrolowanym wyjściem TRNG; praktyczne konsekwencje obejmują awarie i nieprzewidywalne uszkodzenie stanu, aż po oportunistyczną eskalację, gdy księgowość jądra, taka jak mapy bitowe uprawnień obiektów, zostanie nadpisana. Dotknięte urządzenia to te, w których zestaw SDK MCUX umożliwia TRNG_SW_HEALTH_TESTS (MIMXRT595S, MIMXRT555S, MIMXRT533S, MIMXRT685S, MIMXRT633S), na których TRNG jest wybranym węzłem zefiru, entropii; inne SoC korzystające z tego sterownika korzystają ze ścieżki SDK, która ogranicza rozmiar kopii i nie ma to na nie wpływu.

Poprawka kieruje niewyrównany prefiks i koniec słowa podrzędnego przez lokalne słowo odrzucone i przekazuje zestawowi SDK tylko rozmiary wielu słów, więc zapisy SDK z uwzględnieniem szczegółowości słów nie mogą już przekraczać końca bufora programu wywołującego.

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