Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en iso14229 de driftregion (CVE-2026-54413)

Gravedad CVSS v4.0:
ALTA
Tipo:
CWE-125 Lectura fuera de límites
Fecha de publicación:
14/06/2026
Última modificación:
24/07/2026

Descripción

driftregion iso14229 hasta la versión 0.9.0 contiene un desbordamiento negativo de enteros y una lectura fuera de límites posterior en la función Handle_0x27_SecurityAccess() en iso14229.c que permite a un atacante remoto no autenticado bloquear un servidor UDS y potencialmente leer memoria más allá del búfer de recepción enviando una solicitud SecurityAccess de un solo byte 0x27 que sigue a cualquier mensaje 0x27 bien formado anterior. El gestor lee la subfunción SecurityAccess de recv_buf[1] sin verificar primero que recv_len sea al menos 2, luego calcula la longitud de los datos de la clave como la resta sin signo (uint16_t)(recv_len - UDS_0X27_REQ_BASE_LEN); cuando recv_len es igual a 1, el resultado sufre un desbordamiento negativo a 65535 y se pasa como args.len a la devolución de llamada SecAccessValidateKey o SecAccessRequestSeed de la aplicación, que típicamente itera o copia esa cantidad de bytes del búfer de recepción de 4 KB. Cada otro gestor de subfunción UDS en la biblioteca (0x10, 0x11, 0x14, 0x19, 0x22, 0x23, 0x28 y otros) realiza una verificación explícita del límite inferior de recv_len antes de la indexación; Handle_0x27_SecurityAccess es la única excepción. El gestor vulnerable es accesible a través de los transportes CAN bus, OBD-II, ISO-TP y DoIP y está expuesto en la sesión de diagnóstico predeterminada sin autenticación previa; las implementaciones en ECUs automotrices, controladores industriales y dispositivos IoT que incluyen iso14229 como su servidor UDS se ven afectadas.