OpenPLC_v3 Heap-Based Buffer Overflow in Modbus Master getData()
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- No fix listed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-122 and the CVSS impact.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
No affected products listed by the sources yet.
Remediation
No fixed version listed by the sources yet.
Timeline
- 2026-10-02 Threatist record created from CVE-2026-11826
- 2026-10-03 Alias added: GHSA-3x22-r5w3-j249
References
Patch 1
Other 2
More OpenPLC vulnerabilities
- TI-2021-08453 OpenPLC ScadaBR through 0.9.1 on Linux and through 1.12.4 on Windows allows remote… KEVCVSS 3.1HIGH 8.8
- TI-2021-08454 OpenPLC ScadaBR through 0.9.1 on Linux and through 1.12.4 on Windows allows stored XSS via system_settings.shtm. KEVCVSS 3.1MEDIUM 5.4
- TI-2024-22495 Stack-based buffer overflow in OpenPLC_v3 CVSS 3.1CRITICAL 9.8
- TI-2024-26520 Incorrect type conversion in OpenPLC_v3 CVSS 3.1HIGH 7.5
- TI-2024-26519 Incorrect type conversion in OpenPLC_v3 CVSS 3.1HIGH 7.5
- TI-2024-24528 Out-of-bounds read in OpenPLC_v3 CVSS 3.1HIGH 7.5
Sources
- CVE-2026-11826 · CVE Program
- CVE-2026-11826 · NVD
- FIRST EPSS
- GHSA-3x22-r5w3-j249 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences