Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain local user access on target host
-
DeliveryIdentify deployed open62541 example binary
-
ExploitConnect client to attacker-controlled OPC UA endpoint
-
ExecutionServer response triggers UA_Client_getRemoteDataTypes use-after-free
-
PersistHeap memory corruption
-
ImpactApplication crash or limited code execution
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that: (1) the target host compiles and runs a binary derived from examples/custom_datatype/client_types_custom.c - this is non-default example code, not a standard library component; (2) the attacker has local user access to the host (AV:L, PR:L from the CVSS 4.0 vector - remote unauthenticated exploitation is not possible); and (3) the client binary is executed against either an attacker-controlled OPC UA server endpoint or one that returns a crafted response. Factors limiting exploitation include: the code is in the examples directory and unlikely to appear in production deployments; local access is required, ruling out network-based attacks; and the scope is unchanged (S:U in equivalent 3.1 terms), meaning successful exploitation does not propagate to other systems. The project's closure of the issue without a fix suggests they consider this code out of scope for security guarantees. |
| Impact | Real-world risk is substantially lower than a surface-level CWE-416 assessment would suggest, for several compounding reasons. The CVSS 4.0 base score of 1.9 reflects local attack vector (AV:L) with low privileges (PR:L), meaning an attacker must already have local host access - this eliminates remote, unauthenticated attack scenarios entirely. More critically, the vulnerable code is in the examples directory, not the core library; production deployments that do not compile and ship example binaries are likely unaffected. The CVSS 4.0 E:P modifier confirms a POC exists but does not imply active exploitation. CISA KEV status is absent, further indicating no confirmed real-world weaponization. EPSS data was not provided in the input - this is a missing signal that would help contextualize exploitation probability. The project's decision to close the issue without remediation is notable: it implies the maintainers do not consider the example code production-grade, but it also means no official patch exists. Combined, this is a low-priority finding for most production deployments unless the example binaries are explicitly used in a deployed product. |
| Exploit ScenarioDerived | A local user with standard (non-root) credentials on a host running a binary compiled from the open62541 example code executes the custom datatype client against a crafted or attacker-controlled OPC UA server endpoint. The server response triggers the use-after-free in UA_Client_getRemoteDataTypes, causing heap memory corruption. Depending on heap layout, this results in an application crash (denial of service) or, under favorable memory conditions, limited code execution within the process context. A publicly available proof-of-concept exists at https://github.com/gff-cw/information/issues/12. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 04, 2026
Use-after-free memory corruption in open62541's example client code allows a local low-privileged user to cause memory corruption with potential for denial of service or limited code execution. The vulnerability resides in the UA_Client_getRemoteDataTypes function within the examples/custom_datatype/client_types_custom.c file - notably example/sample code rather than the core library - at commit ca356b088ada7dee824d1b4acd07c1ff07ce242b. A publicly available proof-of-concept exploit exists, though the project closed the issue report citing improper disclosure channel, leaving no official patch or advisory. No confirmed active exploitation (CISA KEV absent), but the CVSS 4.0 E:P modifier reflects the published POC.
RemediationAI
No vendor-released patch has been identified at time of analysis. The project closed the issue report (https://github.com/open62541/open62541/issues/8131) citing improper disclosure channel, and issued no official fix or advisory. The primary compensating control is to avoid compiling and deploying the examples/custom_datatype/client_types_custom.c example binary in any production or internet-adjacent environment - example code is not hardened for deployment and this file should be excluded from production build targets. If the function UA_Client_getRemoteDataTypes must be used, restrict execution to trusted local users only and enforce OS-level privilege separation to contain any exploit impact. Developers who need the functionality should reimplement it in the core codebase with proper memory lifetime management rather than adapting example code. For organizations that have already deployed binaries derived from this example, auditing memory allocation and deallocation ordering around UA_Client_getRemoteDataTypes is advised, and restricting local access to the host running the client is the most actionable near-term control.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
open62541 is an open-source C implementation of OPC UA (OPC Unified Architecture), a machine-to-machine communication protocol widely used in industrial automation and ICS/OT environments. The affected code resides in examples/custom_datatype/client_types_custom.c - specifically in the UA_Client_getRemoteDataTypes function, which retrieves remote custom data type definitions from an OPC UA server. CWE-416 (Use After Free) indicates that a memory region is freed and subsequently accessed, yielding a dangling pointer. In C-based OPC UA implementations, data type lifetime management is complex, and incorrect deallocation ordering in client-side type negotiation can expose freed heap memory to subsequent reads or writes. The CPE cpe:2.3:a:o6:open62541:*:*:*:*:*:*:*:* covers all versions of the library, though the specific commit hash ca356b088ada7dee824d1b4acd07c1ff07ce242b narrows the confirmed vulnerable state.
Know when Open62541 gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
Local-only attack requires low-privilege access to trigger use-after-free in example code; confidentiality and integrity impacts are limited to process memory.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A vulnerability was determined in o6 open62541 ca356b088ada7dee824d1b4acd07c1ff07ce242b. Impacted is the function UA_Client_getRemoteDataTypes of the file examples/custom_datatype/client_types_custom.c. Executing a manipulation can lead to use after free. It is possible to launch the attack on the local host. The exploit has been publicly disclosed and may be utilized. The project closed the issue report, stating that this is not the official way to report a security vulnerability.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Use-after-free in open62541 up to version 1.5.5 allows remote unauthenticated attackers to crash the OPC UA server's His
An integer overflow in open62541's UA_DataType_fromStructureDescription() allows a malicious or compromised OPC UA serve
Remote memory exhaustion in open62541's FindServers Discovery Service lets an unauthenticated attacker crash or degrade
Uncontrolled memory consumption in open62541's OPC UA Discovery Service allows a remote, unauthenticated attacker to cra
The package open62541/open62541 before 1.2.5, from 1.3-rc1 and before 1.3.1 are vulnerable to Denial of Service (DoS) du
Heap-based buffer overflow in open62541 up to version 1.5.5 allows local low-privileged attackers to corrupt heap memory
Null pointer dereference in open62541's client library (versions up to 1.5.5) allows a remote OPC UA server to crash a c
EUVD-2026-52792
GHSA-vm49-7pv6-899p
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB