Monitor vulnerabilities like this one. Sign up free to get alerted when software you use is affected.
9.8

CVE-2026-71254: nanoMODBUS Server Denial of Service or Remote Code Execution

CVE-2026-71254 CVE-2026-71254
Summary

An attacker can send a specific request to a nanoMODBUS server, causing it to write data outside its memory boundaries. This could lead to the server crashing or potentially allowing an attacker to execute malicious code. It's recommended to update nanoMODBUS to a version greater than 1.23.0 to fix this issue.

What to do

No fix is available yet. Check with your software vendor for updates.

Affected software
VendorProductAffected versions
debevv nanomodbus <= 1.23.0
Original title
nanoMODBUS Server-Side Out-of-Bounds Write in handle_read_file_record()
Original description
nanoMODBUS through v1.23.0 contains an out-of-bounds write in the Modbus server-side handle_read_file_record() function (FC 0x14, Read File Record) in nanomodbus.c. The function validates that the total request size does not exceed 245 bytes and that each sub-request's record_length is at most 124, but it never validates the CUMULATIVE response size across all sub-requests before processing them. The accumulator response_data_size is declared as uint8_t and is incremented by 2 + record_length*2 for each of up to 35 sub-requests; with 35 sub-requests of record_length=124, the cumulative demand is 8750 bytes, which overflows the uint8_t accumulator. A subsequent loop then calls get_n(), an internal function with no bounds checking, once per sub-request to obtain a pointer into the 260-byte msg.buf receive buffer and advances the internal buf_idx by up to 248 bytes per call; swap_regs() then writes to that pointer unconditionally. A single crafted FC 0x14 request from an unauthenticated network client can cause up to ~8490 bytes to be written out of bounds past the 260-byte buffer, corrupting adjacent memory in the server process and leading to denial of service or potential remote code execution, particularly on embedded/bare-metal targets without memory protection.
nvd CVSS3.1 9.8
Vulnerability type
CWE-787 Out-of-bounds Write
Published: 5 Aug 2026 · Updated: 5 Aug 2026 · First seen: 5 Aug 2026