CVE-2026-71254 in nanoMODBUSinformazioni

Riassunto

di VulDB • 05/08/2026

nanoMODBUS fino alla versione v1.23.0 contiene una scrittura fuori dai limiti (out-of-bounds write) nella funzione handle_read_file_record() lato server di Modbus (FC 0x14, Read File Record) in nanomodbus.c. La funzione valida che la dimensione totale della richiesta non superi i 245 byte e che il record_length di ciascuna sotto-richiesta sia al massimo pari a 124, ma non effettua mai una validazione sulla dimensione cumulativa della risposta per tutte le sotto-richieste prima del loro elaborazione. L'accumulatore response_data_size è dichiarato come uint8_t e viene incrementato di 2 + record_length*2 per ciascuna delle fino a 35 sotto-richieste; con 35 sotto-richieste aventi record_length=124, la richiesta cumulativa ammonta a 8750 byte, causando un overflow dell'accumulatore uint8_t. Un ciclo successivo chiama quindi get_n(), una funzione interna priva di controlli sui limiti, una volta per ogni sotto-richiesta al fine di ottenere un puntatore all'interno del buffer di ricezione msg.buf da 260 byte e avanzare l'indice interno buf_idx fino a 248 byte per chiamata; successivamente swap_regs() scrive in quel puntatore incondizionatamente. Una singola richiesta FC 0x14 manipolata ad hoc inviata da un client di rete non autenticato può causare la scrittura fuori dai limiti di circa ~8490 byte oltre il buffer da 260 byte, corrompendo la memoria adiacente nel processo del server e portando a una denial of service o potenziale remote code execution (RCE), in particolare su target embedded/bare-metal privi di protezione della memoria.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsabile

TuranSec

Prenotare

05/08/2026

Divulgazione

05/08/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00476

KEV

no

Attività

basso

Fonti

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!