External risk intelligence

node-opcua Role Permissions Bypass Vulnerability

CVE advisorySeverity: CRITICAL (CVSS 9.1)

CVE-2026-95860

The vulnerability affects OPC UA implementations using node-opcua. While OPC UA is a protocol commonly used in industrial and automation environments that are typically segmented or kept behind internal controls, some deployments may expose these interfaces to wider networks. The potential for public reachability exists in certain configurations, but it is not the standard or designed deployment pattern for most OPC UA servers.

Halo Surface Signal: 3 out of 5 — possibly public-facing.

External exposure likelihood

Horizon Alert

Summary of the vulnerability and why it matters

This advisory concerns a security flaw in node-opcua, an OPC UA implementation for Node.js and TypeScript. The vulnerability could allow unauthenticated clients to bypass access controls and modify data or execute functions, undermining configured security policies. The primary concern is confirming if your specific implementations of node-opcua are affected and thus require review.

  • Access controls can be bypassed by attackers.
  • It impacts data integrity and system operations.
  • Confirm relevance and exposure for affected systems.

Attack Path

How an attacker could exploit the issue

An attacker can bypass access controls in node-opcua by sending unauthenticated network requests. The affected component misinterprets missing role permission metadata as permissive, allowing unauthorized users to modify variables or execute functions. This can lead to an attacker gaining unauthorized write access or executing arbitrary code.

  • Network access required.
  • Bypasses namespace role permissions.
  • Unauthorized data modification or function execution.

Live Threat

Current exploitation, exposure, and threat context

When supported by the advisory, an anonymous network client could bypass access controls configured for OPC UA namespaces. This could allow unauthorized writing of variables or the execution of bound methods on servers that do not have explicit per-node role permissions and rely on default namespace permissions.

  • Unrestricted write access to variables.
  • Bypassed role-based access controls.
  • Unauthorized variable modification or method execution.

Operational Fix

Recommended remediation, mitigation, and detection steps

Infrastructure or platform teams managing Node.js applications are likely responsible for this issue, as it impacts the `node-opcua` library. The first practical step is to identify all instances of the affected software, assess their exposure to external networks, determine business criticality, and locate the accountable owner for remediation planning.

  • Identify affected systems and owners.
  • Verify external network reachability.
  • Plan remediation during maintenance.

Supplementary metadata

Validate whether this threat affects your internet-facing exposure.

Halo Threat Intelligence helps prioritize remediation with Halo Surface Signal and H/A/L/O context. Start exposure validation with a free external attack surface trial.

Frequently asked questions

What is node-opcua and what is it used for?

node-opcua is a software library for TypeScript and Node.js. It implements the OPC UA protocol, which is a standard used to securely exchange data and control commands between devices in industrial automation and manufacturing systems.

What does CVE-2026-95860 mean for access control?

This vulnerability is an improper authorization flaw (CWE-285, CWE-863). It occurs because the library incorrectly handles missing permission metadata. Instead of defaulting to a restrictive state, it treats the absence of configured default namespace permissions as permission granted, letting unauthorized users bypass security policies.

How is this access control bypass triggered?

An attacker needs network access to the server. The bug triggers when a server relies on default namespace-level role permissions rather than explicit per-node permissions. If you have defined specific permissions for every individual node, or if no policy is declared at all, your configuration does not trigger this flaw.

Is my server at risk according to Halo Surface Signal?

Halo Surface Signal identifies this as a potential risk, especially if your OPC UA server is reachable from broader, non-segmented networks. While OPC UA is typically kept behind internal controls, any instance exposed to an external network increases the likelihood of unauthorized interaction.

What should I do if I use node-opcua?

First, inventory your applications to find those using node-opcua versions 2.42.0 through 2.179.0. Once identified, verify their network accessibility and prioritize those exposed to wider networks. The fix is to update your library to version 2.180.0, which resolves the permission logic error.

References