CVE-2026-29972

high

Description

nanoMODBUS through v1.22.0 has a stack-based buffer overflow in recv_read_registers_res() in nanomodbus.c. When a client calls nmbs_read_holding_registers() or nmbs_read_input_registers(), the library writes register data from the server response to the caller-provided buffer based on the response's byte_count field before validating that byte_count matches the requested quantity. A malicious Modbus TCP server can send a response with byte_count=250 (125 registers) regardless of the requested quantity, causing up to 248 bytes of attacker-controlled data to overflow the buffer, potentially allowing remote code execution.

References

https://github.com/debevv/nanoMODBUS/blob/master/nanomodbus.c#L580-L615

https://github.com/debevv/nanoMODBUS

https://gist.github.com/dwilliams27/a4e26fe747c8561d608f7549804bd85f

Details

Source: Mitre, NVD

Published: 2026-05-08

Updated: 2026-05-08

Risk Information

CVSS v2

Base Score: 8.5

Vector: CVSS2#AV:N/AC:L/Au:N/C:N/I:P/A:C

Severity: High

CVSS v3

Base Score: 8.2

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H

Severity: High

EPSS

EPSS: 0.00052