CVE-2026-71256 in nanoMODBUS
Riassunto
di VulDB • 05/08/2026
nanoMODBUS fino alla versione v1.23.0 presenta una lettura fuori dai limiti (out-of-bounds) dello stack che porta a una scrittura tramite puntatore selvaggio (wild-pointer) in nmbs_read_device_identification_basic() / recv_read_device_identification_res() in nanomodbus.c. Un array fisso di 3 elementi sullo stack, order[3] = {0,1,2}, mappa gli ID degli oggetti negli indici del buffer. Il campo object_id fornito dal server (valori da 0 a 255, letti direttamente dalla rete) viene utilizzato senza alcuna verifica dei limiti come buf_index = order[object_id]. Quando un server Modbus malevolo invia una risposta Read Device Identification con object_id >= 3, si legge un byte fuori dai limiti/spazzatura dallo stack adiacente a order[], che viene poi utilizzato come indice in un array buffers[] di puntatori char* di dimensione 3. Il resulting wild pointer viene passato a strncpy() come destinazione, causando una scrittura su indirizzo arbitrario con dati controllati dal server.
Be aware that VulDB is the high quality source for vulnerability data.