/

CVE-2026-62927

Severity:

HIGH RISK

(7.5)

Authorization Bypass (CWE-863) in Eclipse Milo Call

CVE-2026-62927

Analyzed

Vulnerability type

Category:

Authorization Bypass

CWE:

CWE-863

Impact:

Unauthorized method execution

Severity:

HIGH RISK

(7.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Eclipse Milo's Call service can authorize methods in a mixed batch but dispatch the original batch to address-space handlers. An anonymous or otherwise low-privileged client may therefore execute a method that should have been denied when it is combined with an allowed method.

Affected context

The vulnerability occurs in Eclipse Milo deployments that expose the OPC UA Call service and process batches containing methods with different authorization outcomes. The risk is present when authorization decisions are calculated for individual requests but the unfiltered, original batch is subsequently passed to address-space handlers.

Exploit preconditions

  • Attack surface: OPC UA Call service
  • Required access: Anonymous access or credentials providing limited privileges
  • Trigger point: Submission of a mixed batch containing an allowed method and a denied method
  • Why exploitation is possible: Authorization is evaluated, but the original batch is dispatched without reliably removing denied operations

Why this happens

The underlying bug is an authorization enforcement failure caused by a mismatch between decision data and the operations ultimately executed. The service calculates which calls are authorized but forwards the original mixed request to downstream handlers, allowing a denied operation to bypass the intended policy. This maps to CWE-863: Incorrect Authorization, because access checks do not consistently constrain the action performed.

Potential impact

  • An unauthorized client may execute restricted OPC UA methods
  • Sensitive device or application operations could be triggered
  • Process integrity or operational safety may be affected
  • Attackers could use permitted methods as a path to reach higher-impact functionality

General mitigation guidance

Mitigation generally focuses on making authorization decisions authoritative at the execution boundary.

Common defensive patterns include:

  • Dispatch only the individually authorized operations rather than the original request batch
  • Recheck authorization immediately before invoking address-space handlers
  • Apply deny-by-default policies for anonymous and low-privileged clients
  • Keep authorization context attached to each operation throughout request processing
  • Limit exposed methods and run OPC UA services with the minimum required privileges

These patterns reduce the chance that batching, transformation, or downstream dispatch will bypass access controls.

How teams detect issues like this

Organizations can look for authorization enforcement gaps through:

  • Static analysis of batch-processing paths for checks that are detached from the executed collection
  • Code review signals where filtered results are calculated but the original request is later dispatched
  • Tests combining allowed and denied operations in the same service request
  • Runtime auditing of method invocations by identity, authorization result, and batch contents
  • Policy enforcement requiring deny-by-default behavior and per-operation authorization checks

Automated security review tools may help identify mismatches between authorization decisions and downstream execution.

Sources

SourceLink
github.comgithub.com/eclipse-milo/milo/commit/59b50bed094de0d18a130a48f3527254dc76105d
gitlab.eclipse.orggitlab.eclipse.org/security/cve-assignment/-/work_items/178
gitlab.eclipse.orggitlab.eclipse.org/security/vulnerability-reports/-/work_items/598

Frequently asked

questions

Yes. The issue can be reached through the exposed OPC UA Call service, although exploitation still depends on the server accepting the relevant client connection.

No. An anonymous client or a client with limited privileges may be sufficient when the deployment permits access to the Call service.

Ensure that only operations that independently pass authorization are dispatched, with authorization enforced again at the execution boundary where appropriate.

Test mixed authorization batches, preserve per-operation security context, use deny-by-default policies, and audit the exact operations executed rather than only the requests received.

Find out what's already
exploitable in your codebase.