You are viewing this page in an unauthorized frame window.
This is a potential security issue, you are being redirected to
https://nvd.nist.gov
An official website of the United States government
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
Secure .gov websites use HTTPS
A lock () or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.
This CVE record is not being prioritized for NVD enrichment efforts due to resource or other concerns.
Description
driftregion iso14229 through 0.9.0 contains an integer underflow and downstream out-of-bounds read in the Handle_0x27_SecurityAccess() function in iso14229.c that allows a remote unauthenticated attacker to crash a UDS server and potentially read memory past the receive buffer by sending a single-byte 0x27 SecurityAccess request that follows any earlier well-formed 0x27 message. The handler reads the SecurityAccess subFunction from recv_buf[1] without first checking that recv_len is at least 2, then computes the key-data length as the unsigned subtraction (uint16_t)(recv_len - UDS_0X27_REQ_BASE_LEN); when recv_len equals 1 the result underflows to 65535 and is passed as args.len to the application's SecAccessValidateKey or SecAccessRequestSeed callback, which typically iterates or copies that many bytes from the 4-KB receive buffer. Every other UDS sub-function handler in the library (0x10, 0x11, 0x14, 0x19, 0x22, 0x23, 0x28, and others) performs an explicit recv_len lower-bound check before indexing; Handle_0x27_SecurityAccess is the sole outlier. The vulnerable handler reaches over CAN bus, OBD-II, ISO-TP, and DoIP transports and is exposed in the default diagnostic session without prior authentication; deployments on automotive ECUs, industrial controllers, and IoT devices that ship iso14229 as their UDS server are affected.
Metrics
NVD enrichment efforts reference publicly available information to associate
vector strings. CVSS information contributed by other sources is also
displayed.
By selecting these links, you will be leaving NIST webspace.
We have provided these links to other web sites because they
may have information that would be of interest to you. No
inferences should be drawn on account of other sites being
referenced, or not, from this page. There may be other web
sites that are more appropriate for your purpose. NIST does
not necessarily endorse the views expressed, or concur with
the facts presented on these sites. Further, NIST does not
endorse any commercial products that may be mentioned on
these sites. Please address comments about this page to [email protected].
Title: iso14229 de driftregion, Description: 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.
Title: iso14229 de driftregion, Description: 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.
CVE Translated by NIST7/23/2026 7:10:00 AM
Action
Type
Old Value
New Value
Added
Translation
Title: iso14229 de driftregion, Description: 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.
New CVE Received from TuranSec6/14/2026 2:17:20 PM
Action
Type
Old Value
New Value
Added
Description
driftregion iso14229 through 0.9.0 contains an integer underflow and downstream out-of-bounds read in the Handle_0x27_SecurityAccess() function in iso14229.c that allows a remote unauthenticated attacker to crash a UDS server and potentially read memory past the receive buffer by sending a single-byte 0x27 SecurityAccess request that follows any earlier well-formed 0x27 message. The handler reads the SecurityAccess subFunction from recv_buf[1] without first checking that recv_len is at least 2, then computes the key-data length as the unsigned subtraction (uint16_t)(recv_len - UDS_0X27_REQ_BASE_LEN); when recv_len equals 1 the result underflows to 65535 and is passed as args.len to the application's SecAccessValidateKey or SecAccessRequestSeed callback, which typically iterates or copies that many bytes from the 4-KB receive buffer. Every other UDS sub-function handler in the library (0x10, 0x11, 0x14, 0x19, 0x22, 0x23, 0x28, and others) performs an explicit recv_len lower-bound check before indexing; Handle_0x27_SecurityAccess is the sole outlier. The vulnerable handler reaches over CAN bus, OBD-II, ISO-TP, and DoIP transports and is exposed in the default diagnostic session without prior authentication; deployments on automotive ECUs, industrial controllers, and IoT devices that ship iso14229 as their UDS server are affected.