GHSA-qv76-j3j3-2f94
Severity by source
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable with no auth required (AV:N, PR:N), but AC:H because a non-default PubSub signing build and ReaderGroup configuration are prerequisites; impact is availability-only crash with no information disclosure or integrity effect (A:H, C:N, I:N).
Primary rating from Vendor (CNA).
CVSS VectorVendor
Lifecycle Timeline
2Description PRE-NVD
AnalysisAI
Unsigned integer underflow in open62541's PubSub signature verification path enables an unauthenticated remote attacker to crash an OPC UA server with a single crafted UDP packet. Affected across versions 1.3.0-1.3.18, 1.4.0-1.4.17, and 1.5.0-1.5.5 on Windows and Linux, exploitation requires a non-default build with PubSub encryption enabled and a ReaderGroup in SIGN or SIGNANDENCRYPT mode - but demands no session, credentials, or prior authentication. Patches were released 2026-07-27 and CISA published ICS advisory ICSA-26-211-08 on 2026-07-30; proof-of-concept code is withheld at o6 Automation's request and no KEV listing is present, meaning active exploitation is not confirmed at time of analysis.
Technical ContextAI
open62541 is a widely embedded open-source C implementation of OPC UA (IEC 62541), the interoperability protocol for industrial automation maintained by o6 Automation GmbH and used in controllers, gateways, and edge devices across critical infrastructure. The root cause is CWE-191 (Integer Underflow / Wrap-around): the function verifyAndDecrypt() computes the length of the signed region by subtracting the signature size from the total buffer length using unsigned arithmetic, without first confirming the buffer is long enough to contain the signature. When a short message is received, the subtraction wraps to a value near SIZE_MAX. This near-maximum length is passed directly into the mbedTLS HMAC routine, which then reads far past the end of the actual allocation into unmapped memory, crashing the process. The flaw is pre-authentication by design: the receive path decodes OPC UA headers and matches them against a configured DataSetReader before calling verifyAndDecrypt(), so the underflow is triggered before any signature validity is established. The affected code path is reachable via crafted UDP PubSub datagrams; source review by the researcher suggests the MQTT transport reaches the same path, though this was not independently tested.
RemediationAI
Upgrade to open62541 v1.3.19, v1.4.18, or v1.5.6, released 2026-07-27, which introduce the buffer-length bounds check in verifyAndDecrypt() that prevents the underflow. Release tags are confirmed at https://github.com/open62541/open62541/releases/tag/v1.3.19, https://github.com/open62541/open62541/releases/tag/v1.4.18, and https://github.com/open62541/open62541/releases/tag/v1.5.6. Organizations that vendor open62541 into their own products must check the specific embedded copy they ship and rebuild against a fixed release - the build host's package manager version may differ from what is deployed. If immediate patching is not feasible, disabling PubSub security (removing SIGN or SIGNANDENCRYPT mode from all ReaderGroups) eliminates the vulnerable code path, at the trade-off of unprotected PubSub traffic on the wire. Additionally, restricting OPC UA PubSub UDP endpoints to trusted network segments reduces exposure to crafted packets and is recommended regardless of patch status. The full o6 Automation security advisory is referenced under SA-2026-0014.
Same weakness CWE-191 – Integer Underflow
View allSame technique Denial Of Service
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-51336