Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessImpersonate or stand up OPC UA server
-
DeliveryPLC4J client initiates secure channel
-
ExploitSend oversized length/array-count or nested type
-
ExecutionParser pre-allocates gigabytes or recurses unbounded
-
PersistClient heap/stack exhausted
-
ImpactApplication denial of service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory allocation limits
|
| Exploitation Conditions | Exploitation requires the PLC4J (Java) client to use the OPC UA driver and to initiate a connection to an attacker-controlled or impersonated server; the attacker must be able to act as (or on-path intercept and impersonate) the OPC UA server the client connects to. No authentication is needed (PR:N) because the length-prefixed byte string, array pre-allocation, chunk-accumulation, and unbounded recursion defects are triggered during secure-channel/session establishment, before server identity is bound - so pinning a trusted server does NOT prevent it. Limiting factors: the client must actively connect to the malicious/impersonated endpoint (the attacker cannot push unsolicited traffic to an idle client), the affected component is a client-side library rather than a listening service, and impact is confined to denial of service of the client application. The shared array-parser defect exists in all PLC4J drivers, but OPC UA is the verified pre-auth path. |
| Impact | The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N, availability-only VA:H = 8.7) is internally consistent with the description: a remote, unauthenticated, network-reachable denial-of-service with no confidentiality or integrity impact. The most significant qualifier is that in the OPC UA driver the parsing defects are reachable BEFORE authentication - during secure-channel/session establishment, before the server's identity is bound - so configuring a trusted server does not mitigate an attacker who can impersonate it. This raises real exploitability relative to a post-auth DoS. Counter-signals lower the practical priority: no EPSS score, no CISA KEV listing, and no public POC are provided, so this is no public exploit identified at time of analysis rather than confirmed exploitation. The impact ceiling is DoS only (crash/resource exhaustion of the client application) - there is no code execution or data exposure. Net: a genuinely remotely-triggerable pre-auth availability flaw in an industrial-protocol library, but bounded impact and a niche deployment footprint keep it below the 'urgent' tier. No conflicting signals were detected; the CVSS vector matches the described behavior. |
| Exploit ScenarioDerived | A malicious or impersonated OPC UA server (or an on-path attacker impersonating a trusted PLC/server) responds to a PLC4J client's connection attempt with a message declaring an enormous length prefix or array element count, or with deeply-nested recursive protocol types. The PLC4J parser pre-allocates a multi-gigabyte buffer/list or recurses without a depth limit while the secure channel is still being established, exhausting the client's heap or stack and crashing the application. No POC is available and no authentication is required, since the defect triggers before session identity is bound. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
Denial of service in Apache PLC4X (PLC4J Java) from 0.10.0 before 1.0.0 allows a remote, unauthenticated attacker who can impersonate an OPC UA server to exhaust the client application's memory or stack during connection setup. The defects are triggered while the secure channel and session are established, before server identity is bound, so trusting a configured server does not prevent exploitation. No public exploit identified at time of analysis; vendor CVSS 4.0 score is 8.7 and the independent CVSS 3.1 assessment confirms AV:N/AC:L/PR:N/UI:N with availability-only impact (A:H).
RemediationAI
Vendor-released patch: upgrade to Apache PLC4X 1.0.0, which fixes the issue (see https://lists.apache.org/thread.html/qngc85qhnlj7kpk3z58z0xlxhz2tn6gp). If immediate upgrade is not possible, avoid using the PLC4J OPC UA driver to connect to any server that is not on a fully trusted, isolated network segment, but note that configuring a trusted server does not prevent exploitation when the attacker can impersonate the server because parsing occurs before identity binding. Compensating controls include restricting outbound network access from the Java client to required OPC UA endpoints to reduce reachable impersonation paths, running the PLC4J client in an isolated JVM/container with constrained -Xmx and -Xss plus automatic restart to contain memory/stack exhaustion and limit blast radius (this does not prevent the DoS), and monitoring for OutOfMemoryError/StackOverflowError during OPC UA connection establishment. The shared array-parser defect affects all PLC4J drivers, so switching drivers alone is not a complete mitigation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability class is CWE-789 (Memory Allocation with Excessive Size Value), with related resource-exhaustion behaviors including unbounded allocation and uncontrolled recursion. In the Java implementation PLC4J, length-prefixed byte strings are allocated at the wire-claimed size before validating the data actually received, generated protocol parsers pre-allocate arrays/lists using the element count claimed on the wire (shared by all PLC4J drivers), and the OPC UA driver accumulates message chunks without enforcing the negotiated maximum chunk count and message size and pre-allocates collections from server-supplied element counts. Recursive protocol types are parsed without a nesting-depth limit. Because OPC UA parsing occurs during secure-channel/session establishment before server identity is bound, the OPC UA driver is the verified pre-authentication path; an attacker must be able to act as, or on-path impersonate, the OPC UA server the Java client connects to. The Go implementation has a related recursion defect tracked as CVE-2026-102510.
Know when Java 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:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Remote unauthenticated malicious/impersonated server triggers the defect during connection setup (AV:N/AC:L/PR:N/UI:N); availability-only crash with no confidentiality or integrity impact.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
Lifecycle Timeline
2DescriptionCVE.org
Memory Allocation with Excessive Size Value, Allocation of Resources Without Limits, and Uncontrolled Recursion in the Java implementation of Apache PLC4X (PLC4J) allow a malicious or impersonated device to exhaust the memory or stack of the client application, causing a denial of service.
In the OPC UA driver these defects are reachable before authentication: the offending data is parsed while the secure channel and session are being established, before the server's identity has been bound to it. Configuring a trusted server therefore does not prevent exploitation by an attacker who can impersonate it.
The individual defects are:
- Length-prefixed byte strings are allocated at the size claimed on the wire before the length is checked against the data actually received (0.10.0 through 0.13.1).
- Array fields in generated protocol parsers pre-allocate a list with the element count claimed on the wire, allowing a single count field to trigger a multi-gigabyte allocation. This parser is shared by all PLC4J drivers; the OPC UA driver is the verified pre-authentication path (0.10.0 through 0.13.1).
- The OPC UA driver accumulates message chunks without enforcing the negotiated maximum chunk count and message size (0.12.0 through 0.13.1).
- The OPC UA driver pre-allocates collections using element counts received from the server (0.10.0 through 0.13.1).
- Recursive protocol types are parsed without a nesting-depth limit. The same defect in the Go implementation is covered by CVE-2026-102510 https://cveprocess.apache.org/cve5/CVE-2026-102510 .
This issue affects Apache PLC4X: from 0.10.0 before 1.0.0.
Users are recommended to upgrade to version 1.0.0, which fixes the issue.
Articles & Coverage 1
Executive ViewAI
Apache PLC4X (PLC4J Java) versions starting from 0.10.0 and before 1.0.0 are affected by a high-severity denial-of-service vulnerability that can be triggered by a remote, unauthenticated attacker impersonating an OPC UA server. This could disrupt industrial control system communications, causing operational downtime and potential safety impacts for organizations relying on affected PLC4X deployments in critical environments. No public exploit identified at time of analysis, but the availability-only impact and high CVSS score warrant immediate attention.
No vendor-released patch identified at time of analysis. Interim mitigations include isolating PLC4X clients from untrusted networks, restricting outbound connections to only trusted OPC UA servers, and monitoring for memory exhaustion. Since the vulnerability is triggered before server identity is bound, trusting a configured server does not prevent exploitation; therefore, network-level controls and strict segmentation are critical.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
EUVD-2026-89678
GHSA-c34c-r8hh-6grp
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB