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/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 pre-authentication endpoint, no complexity or interaction; availability-only impact as server crashes; scope unchanged within the server process.
Primary rating from Vendor (eclipse).
CVSS VectorVendor: eclipse
Lifecycle Timeline
3DescriptionCVE.org
In Eclipse Milo versions 0.6.0 through 1.1.4, UASC server transport handlers fail to release retained partial message chunks when a channel disconnects, allowing a remote unauthenticated client to exhaust pooled direct memory by repeatedly sending incomplete chunks and disconnecting, potentially terminating the server.
AnalysisAI
Unauthenticated remote denial-of-service in Eclipse Milo 0.6.0-1.1.4 allows any network-accessible client to exhaust the OPC UA server's off-heap direct memory pool by repeatedly sending incomplete UASC message chunks and disconnecting before message assembly completes. The UASC server-side asymmetric handler and ChunkDecoder fail to invoke ReferenceCountUtil.safeRelease() on retained Netty ByteBuf objects when the channel lifecycle ends, causing unbounded off-heap memory accumulation. No authentication is required and no special server configuration is necessary; the fix commit is publicly available on GitHub, serving as an effective blueprint for exploitation, though no standalone POC tool or CISA KEV listing has been identified at time of analysis.
Technical ContextAI
Eclipse Milo (cpe:2.3:a:eclipse_foundation:eclipse_milo) is the primary open-source Java implementation of OPC UA (OPC Unified Architecture), a publish-subscribe and request-response communication protocol standard for industrial automation, SCADA, and IoT systems. OPC UA messages are transported in fragments called chunks; the server accumulates these in memory until a complete message is assembled. The UASC (UA Secure Conversation) layer handles session establishment and security handshakes before authentication. The vulnerable components are UascServerAsymmetricHandler - which manages the OpenSecureChannel handshake - and ChunkDecoder, both of which used a raw List<ByteBuf> to accumulate partial chunks. Netty ByteBuf objects are reference-counted off-heap (direct) memory allocations; failure to call safeRelease() or releaseAll() when the channel becomes inactive or the handler is removed constitutes CWE-401 (Missing Release of Memory after Effective Lifetime). The fix introduces a dedicated ChunkBufferAccumulator class with a releaseAll() method wired into channelInactive() and the new handlerRemoved0() override, and wraps ChunkDecoder decode paths in finally blocks to ensure release on decode failure or exception.
RemediationAI
Upgrade Eclipse Milo to a version beyond 1.1.4 once an official patched release is published; the upstream fix is committed at https://github.com/eclipse-milo/milo/commit/459715793ec54b0f33367a14f94264500a0d872b, but a tagged released patched version has not been independently confirmed from the available data - monitor the Eclipse Milo GitHub releases page for the official fix version. As an immediate compensating control, restrict access to the OPC UA server port (default TCP 4840) to trusted source IP ranges using host-based or network firewall rules, preventing unauthenticated remote clients from reaching the vulnerable UASC handler; this trade-off limits connectivity for legitimate OPC UA clients that may require broader network access. If the OPC UA server endpoint is not actively required, disable it entirely until patching is feasible. Additionally, configure JVM direct memory limits via -XX:MaxDirectMemorySize and monitor process off-heap memory to detect exploitation attempts early and enable automated restarts before full service degradation.
More in Eclipse Milo
View allPassword recovery in Eclipse Milo (the open-source OPC UA SDK for Java) versions 0.6.0 through 1.1.4 allows an on-path a
Silent authorization bypass in Eclipse Milo OPC UA server SDK versions 1.0.0-1.1.4 allows anonymous network clients to i
Authorization bypass in Eclipse Milo's OPC UA Call service (versions 1.0.0-1.1.4) permits unauthenticated or low-privile
Unauthenticated remote clients can permanently exhaust the global monitored-item quota in Eclipse Milo OPC UA SDK versio
Session security diagnostics nodes in Eclipse Milo 0.6.0 through 1.1.4 expose sensitive OPC UA session metadata without
Same weakness CWE-401 – Memory Leak
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-52662
GHSA-8mrr-fgjx-37mf