Skip to main content

Apache PLC4X EUVDEUVD-2026-89678

| CVE-2026-102509 HIGH
Memory Allocation with Excessive Size Value (CWE-789)
2026-09-30 apache GHSA-c34c-r8hh-6grp
8.7
CVSS 4.0 · Vendor: apache
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Impersonate or stand up OPC UA server
  2. Delivery
    PLC4J client initiates secure channel
  3. Exploit
    Send oversized length/array-count or nested type
  4. Execution
    Parser pre-allocates gigabytes or recurses unbounded
  5. Persist
    Client heap/stack exhausted
  6. Impact
    Application 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Apache PLC4X 0.10.0 <1.0.0

Affected Packages

euvd apache_plc4x fix: 1.0.0

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

Vendor (apache) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (apache).

CVSS VectorVendor: apache

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 30, 2026 - 09:01 EUVD
CVE Published
Sep 30, 2026 - 08:00 cve.org
HIGH 8.7

DescriptionCVE.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.

Executive ViewAI

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Low
Apache industrial PLC-communication library, used in niche OT/automation integrations
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

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

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy