CVE Catalog

CVE-2026-11826

HighCVSS 8.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.42%

34th percentile - higher than 34% of all known CVEs

Summary

Heap-based buffer overflow in getData() function in OpenPLC_v3 (webserver/core/modbus_master.cpp). Function reads data between delimiters into a buffer without size check, allowing authenticated attacker to send crafted HTTP POST to /modbus with oversized device_name, causing heap corruption.

Risk Assessment

Attack can cause PLC process crash (denial of service) and potentially overwrite adjacent configuration fields, threatening stability and security of industrial control.

Recommendation

Migrate to OpenPLC Runtime v4 as v3 will not be patched (repository archived). Restrict web interface access to trusted users only.

Related vulnerabilities

Original NVD description (English source)

OpenPLC_v3 contains a heap-based buffer overflow in the getData() function in webserver/core/modbus_master.cpp. getData() reads characters between two delimiters into a caller-supplied buffer with no size parameter and no bounds check. In parseConfig() the function is invoked with the 100-byte heap-allocated MB_device.dev_name field. An authenticated attacker with access to the OpenPLC web interface can send a crafted HTTP POST to the /modbus endpoint with an oversized device_name value; the value is persisted to mbconfig.cfg and parsed on load, overflowing dev_name and overwriting adjacent struct fields (protocol at offset 108, dev_address at offset 109, ip_port at offset 210). A 200-byte payload writes 100 bytes past the allocation. The result is heap corruption leading to runtime crash and denial of service of the PLC process control loop, with attacker-controlled overwrite of adjacent configuration fields. The upstream repository was archived on 2026-04-04 and no fix is expected; the vendor has confirmed the issue does not affect OpenPLC Runtime v4.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS