VULNERABILIDAD
CVE-2026-19736 Escritura fuera de límites en el driver de entropía NXP MCUX TRNG
El driver de entropía NXP MCUX TRNG en drivers/entropy/entropy_mcux_trng.c pasa el conteo de bytes del llamador directamente a TRNG_GetRandomData(); con longitudes que no son múltiplos de cuatro, dataSize se desborda y el SDK sigue escribiendo en el búfer del llamador durante toda la extracción, con hasta 127 bytes de desbordamiento. entropy_get_entropy() es una syscall cuyo verificador solo valida la longitud solicitada, por lo que con CONFIG_USERSPACE un hilo no privilegiado puede provocar la escritura fuera de…
Alerta de Nureq Monitor
Detectada 11 OCT · 16:24
CVSS 3.1
7.8ALTAPROBABILIDAD DE EXPLOTACIÓN (EPSS)
0,1 % PERCENTIL 1
EXPLOTACIÓN ACTIVA
No confirmada
EXPLOIT PÚBLICO
No conocido
Qué es CVE-2026-19736
El driver de entropía NXP MCUX TRNG en drivers/entropy/entropy_mcux_trng.c pasa el conteo de bytes del llamador directamente a TRNG_GetRandomData(); con longitudes que no son múltiplos de cuatro, dataSize se desborda y el SDK sigue escribiendo en el búfer del llamador durante toda la extracción, con hasta 127 bytes de desbordamiento. entropy_get_entropy() es una syscall cuyo verificador solo valida la longitud solicitada, por lo que con CONFIG_USERSPACE un hilo no privilegiado puede provocar la escritura fuera de…
Productos y versiones afectadas
zephyrproject zephyr
Qué hacer
- Verificá si usás zephyr y en qué versión: el rango afectado figura arriba.
- Actualizá a la versión corregida que indique el fabricante en su aviso (ver referencias) o aplicá la mitigación que publique.
- Revisá registros y accesos de los sistemas expuestos para descartar que se haya aprovechado antes de corregir.
Calculadora CVSS
CVSS 3.1 · 7.8 ALTA
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- VECTOR DE ATAQUE (AV)
- Local
- COMPLEJIDAD DEL ATAQUE (AC)
- Baja
- PRIVILEGIOS REQUERIDOS (PR)
- Bajos
- INTERACCIÓN DEL USUARIO (UI)
- Ninguna
- ALCANCE (S)
- Sin cambio
- CONFIDENCIALIDAD (C)
- Alta
- INTEGRIDAD (I)
- Alta
- DISPONIBILIDAD (A)
- Alta
Abrir la calculadora completa →
Descripción original
The NXP MCUX TRNG entropy driver in drivers/entropy/entropy_mcux_trng.c passed the caller's byte count straight to the vendor SDK routine TRNG_GetRandomData(). On i.MX RT5xx and RT6xx parts the SDK compiles its TRNG_SW_HEALTH_TESTS variant, which always copies whole 32-bit words and draws entropy rounded up to a multiple of 128 bytes. Its "caller buffer is full" guard tests dataSize == 0, so a request whose length is not a multiple of four makes dataSize underflow past zero and the SDK keeps writing into the caller's buffer for the entire extraction: a 1-byte request results in 128 bytes written, and any non-word-multiple length overflows by up to 127 bytes.
entropy_get_entropy() is a syscall, and its verifier in drivers/entropy/entropy_handlers.c validates only the requested length via K_SYSCALL_MEMORY_WRITE(). With CONFIG_USERSPACE enabled, an unprivileged user-mode thread that has merely been granted the entropy device can therefore choose both the destination address and a length such as 1, and cause the kernel to write up to 127 bytes beyond the region it proved it owns. On these Cortex-M33 targets there is no MMU, so user partitions and kernel data share one SRAM and the overflow can land in adjacent kernel state. The same defect is reached from kernel mode by any caller requesting a non-word-multiple length, including getentropy() and, in builds where sys_csrand_get()/sys_rand_get() resolve to the hardware generator, sys_rand8_get() and sys_rand16_get().
Impact is memory corruption of up to 127 bytes immediately following the supplied buffer — typically the caller's stack in kernel-mode use, or memory outside the caller's partition when driven through the syscall. The overflow offset is fully determined by the requested length and is therefore deterministic, while the written content is uncontrolled TRNG output; the practical consequences range from crashes and unpredictable state corruption to opportunistic escalation when kernel bookkeeping such as object permission bitmaps is overwritten. The affected devices are those where the MCUX SDK enables TRNG_SW_HEALTH_TESTS (MIMXRT595S, MIMXRT555S, MIMXRT533S, MIMXRT685S, MIMXRT633S), on which the TRNG is the zephyr,entropy chosen node; other SoCs using this driver take the SDK path that clamps the copy size and are unaffected.
The fix routes any unaligned prefix and any sub-word tail through a local bounce word and hands the SDK only word-multiple sizes, so the SDK's word-granular writes can no longer pass the end of the caller's buffer.
Referencias
- github.com/zephyrproject-rtos/zephyr/commit/2c132efaf03a5d45aeaf7b0531c1107db7a36a3dPATCH
- github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-3f6q-3949-rqph
Historial de la alerta
- VULNERABILIDAD Nueva vulnerabilidad detectada.
CÓMO SE HIZOResumen traducido automáticamente al español a partir de la descripción original. Ante dudas, la descripción original y las referencias del fabricante son la fuente de verdad. Cómo funciona.