Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/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, unauthenticated exploitation via standard OPC UA batch call with integrity-only impact; no data exposure or availability disruption occurs.
Primary rating from Vendor (eclipse).
CVSS VectorVendor: eclipse
Lifecycle Timeline
4DescriptionCVE.org
In Eclipse Milo versions 1.0.0 through 1.1.4, the Call service dispatches the original mixed batch to address-space handlers after calculating authorization, allowing an anonymous or otherwise low-privileged client to execute a denied method by batching it with an allowed method.
AnalysisAI
Authorization bypass in Eclipse Milo's OPC UA Call service (versions 1.0.0-1.1.4) permits unauthenticated or low-privileged OPC UA clients to invoke server-side methods they are explicitly denied access to. The server correctly computes per-method authorization for a mixed batch CallRequest but then dispatches the original unfiltered batch - including denied methods - to address-space handlers, rendering the authorization check effectively inert. No active exploitation is confirmed and no public exploit code has been identified, but the attack requires only standard OPC UA client tooling and zero authentication, making exploitation trivially accessible to any network-reachable client.
Technical ContextAI
Eclipse Milo is an open-source OPC UA (Open Platform Communications Unified Architecture) SDK for Java, widely used in industrial automation, SCADA, and IIoT environments (CPE: cpe:2.3:a:eclipse_foundation:eclipse_milo:*). OPC UA's Call service supports batching multiple MethodCall requests in a single CallRequest message. The root cause is CWE-863 (Incorrect Authorization): in DefaultMethodServiceSet.java, the call() method partitions the request batch into authorized and denied groups, but then passes the original variable methodsToCall (the full unfiltered batch) rather than the filtered group variable to AddressSpaceManager.call(). This single-variable substitution error means that authorization decisions are computed correctly but never enforced at dispatch time - denied methods execute alongside allowed ones. The fix, confirmed in commit 59b50bed094de0d18a130a48f3527254dc76105d, corrects this by passing the filtered group to the address space handler and adding a regression test that verifies denied methods are never invoked in a mixed batch.
RemediationAI
The upstream fix is available as commit 59b50bed094de0d18a130a48f3527254dc76105d in the Eclipse Milo GitHub repository (https://github.com/eclipse-milo/milo/commit/59b50bed094de0d18a130a48f3527254dc76105d); a specific tagged release version containing this fix was not confirmed in the available data, so consumers should upgrade to the first release beyond 1.1.4 once published and verify the commit is included. As an immediate compensating control, disable anonymous session support on the OPC UA server if not operationally required - this removes the zero-authentication attack path, though low-privileged authenticated users remain a threat vector for the same exploit technique. Apply network-level access controls (e.g., firewall OPC UA port 4840/TCP) to restrict server reachability to explicitly trusted clients only; this reduces exposure without affecting server functionality but does not eliminate risk from already-trusted clients. Audit existing OPC UA client access lists to ensure minimum-privilege assignment, as the vulnerability allows privilege escalation within the method execution scope.
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
Unauthenticated remote denial-of-service in Eclipse Milo 0.6.0-1.1.4 allows any network-accessible client to exhaust the
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-863 – Incorrect Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-52661
GHSA-978q-37g3-wq8g