CVE-2026-71255 in nanoMODBUS
Resumen
por VulDB • 2026-08-05
nanoMODBUS hasta la versión 1.23.0 contiene una escritura fuera de límites (out-of-bounds write) en la función del lado cliente Modbus `recv_read_device_identification_res()` (FC 0x2B/MEI 0x0E, Read Device Identification) en nanomodbus.c. El campo `object_length` proporcionado por el servidor (0-246) se valida únicamente frente al tamaño restante de la PDU (`res_size_left`) y nunca se valida contra el parámetro `buffers_length` suministrado por quien llama. Tras copiar los datos con `strncpy(buffers_out[buf_index], str, buffers_length)`, el código escribe incondicionalmente un terminador NUL en `buffers_out[buf_index][object_length]`. Cuando un servidor Modbus malicioso o comprometido envía una respuesta con `object_length` mayor o igual que `buffers_length` del cliente, esta escritura de terminador NUL se produce más allá del final del búfer proporcionado por el llamante, corrompiendo la memoria adyacente en pila (stack) o montículo (heap) del cliente.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.