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.
{
"cna_assigner": "VulnCheck",
"cwe_ids": [
"CWE-122"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/11xxx/CVE-2026-11826.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"last_affected": "b470206"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"fixed": "b4702061dc14d1024856f71b4543298d77007b88"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-11826.json"
[
{
"deprecated": false,
"digest": {
"line_hashes": [
"326100465535811451797659690864422037342",
"247389525188167108479582712171041193944",
"149524828771016141953941075005619685773",
"75162787984455876771617289835268377032",
"286723267192876252689923870444567925926",
"132645819700948482782421974211161025787",
"32354695468714309932117234454075294451",
"271059337889115762102703437314768354834",
"2433743029965955582598453748383349321",
"330881237858063270492938961009165433822",
"250748072820325620700844646605942732022",
"318144474659556132839530946772984104242",
"50281942822181363972853591006668747656",
"8075137283112446911143253807893132260",
"50176584540348879614342907472233298027"
],
"threshold": 0.9
},
"id": "CVE-2026-11826-eecd8351",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/thiagoralves/openplc_v3/commit/b4702061dc14d1024856f71b4543298d77007b88",
"target": {
"file": "webserver/core/lib/iec_std_functions.h"
}
}
]
"2026-10-21T09:41:59Z"