Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/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 vector, no credentials needed when anonymous sessions are permitted; high integrity impact from unguarded method invocation and node deletion; limited confidentiality exposure (metadata only); no availability impact described.
Primary rating from Vendor (eclipse).
CVSS VectorVendor: eclipse
Lifecycle Timeline
4DescriptionCVE.org
In Eclipse Milo versions 1.0.0 through 1.1.4, OpcUaServerConfig.copy() fails to preserve a configured RoleMapper. On servers that rely on role permissions and construct the running configuration through copy(), sessions receive no role IDs and the default access controller skips role-permission checks, allowing an anonymous client where anonymous sessions are permitted to read role-permission metadata, invoke protected methods, or delete protected nodes.
AnalysisAI
Silent authorization bypass in Eclipse Milo OPC UA server SDK versions 1.0.0-1.1.4 allows anonymous network clients to invoke protected methods, read role-permission metadata, and delete protected nodes. The defect is a missing field copy in OpcUaServerConfig.copy(): when servers construct their running configuration via this method, the configured RoleMapper is silently dropped, causing the DefaultAccessController to receive empty role ID lists for every session and skip all role-permission enforcement. No public exploit code has been identified at time of analysis, and the vulnerability is not listed in CISA KEV.
Technical ContextAI
Eclipse Milo (CPE: cpe:2.3:a:eclipse_foundation:eclipse_milo) is an open-source Java SDK for the OPC Unified Architecture (OPC UA) protocol, commonly used in industrial IoT, SCADA, and process-control systems. OPC UA provides a role-based access control model where a RoleMapper translates authenticated session identities into OPC UA role IDs, and an AccessController enforces permissions on nodes and methods against those roles. The root cause (CWE-862, Missing Authorization) is a one-line omission in the OpcUaServerConfig.copy() static builder method: the method reconstructed all other configuration fields but did not call config.getRoleMapper().ifPresent(builder::setRoleMapper). Consequently, any server whose running config flows through copy() - a common pattern for deriving a live config from a template - silently loses its RoleMapper. With no mapper, getRoleIds() returns empty, and the DefaultAccessController skips role-permission checks entirely, treating every session as if it had no role assignments. The commit at https://github.com/eclipse-milo/milo/commit/d51f03e9a75f313ab41c3d68d809f4b922073f1a confirms both the defect and its single-line fix.
RemediationAI
Apply the upstream fix by upgrading to a version of Eclipse Milo that incorporates commit d51f03e9a75f313ab41c3d68d809f4b922073f1a (https://github.com/eclipse-milo/milo/commit/d51f03e9a75f313ab41c3d68d809f4b922073f1a); monitor the Eclipse Milo GitHub releases page and the Eclipse security advisory at https://gitlab.eclipse.org/security/vulnerability-reports/-/work_items/598 for a formal patched release version, which has not been confirmed in available references. As an immediate compensating control, audit all server initialization code for use of OpcUaServerConfig.copy() and replace affected instances with direct builder construction that explicitly calls .setRoleMapper(...) - this eliminates the defect without waiting for a release. Additionally, disable anonymous session support on any OPC UA server that does not operationally require it by configuring the IdentityValidator to reject anonymous identities; this removes the attack surface entirely and has no impact on deployments using certificate or username authentication.
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
Unauthenticated remote denial-of-service in Eclipse Milo 0.6.0-1.1.4 allows any network-accessible client to exhaust the
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-862 – Missing Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-52663
GHSA-pvvm-cxq7-hrgr