# CVE-2026-54155: node-opcua missing nonce verification in UserNameIdentityToken authentication

Source: https://junglewise.ai/threats/cve-2026-54155-node-opcua-missing-nonce-verification-in-usernameidentitytoken  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-09-14. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-54155 · Severity: high · CVSS 7.7 · Published 2026-09-14

node-opcua is an OPC UA (OLE for Process Control Unified Architecture) server implementation used in industrial control systems and IoT applications to facilitate secure machine-to-machine communication. A missing cryptographic nonce verification in the password authentication handler allows unauthenticated attackers to bypass authentication by crafting a forged empty password or replaying captured authentication tokens across different sessions, potentially gaining unauthorized access to sensitive operational data or control functions.

Technologies: [node-opcua (npm)](https://junglewise.ai/threats/technologies/node-opcua). Vendors: [npm](https://junglewise.ai/threats/vendors/npm).

## Quick answers

**Is CVE-2026-54155 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-54155 being exploited in the wild.

**How severe is CVE-2026-54155?** High severity, with a CVSS score of 7.7, published 14 September 2026.

**Which products and versions are affected?** node-opcua (npm) <= 2.165.0, SEMVER:introduced=0,last_affected=2.165.0.

**Is there a fix for CVE-2026-54155?** No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.

**How is CVE-2026-54155 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-54155?** Check whether you run node-opcua (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## Technical details

The vulnerability is a cryptographic signature verification bypass (CWE-347) in the UserNameIdentityToken authentication handler at packages/node-opcua-server/source/opcua_server.ts lines 1886–1887. After RSA-OAEP decryption of the password blob, the server reads a 4-byte length field and extracts the password without verifying that trailing bytes match the session nonce. An unauthenticated attacker can retrieve the server's public key via an unauthenticated GetEndpoints call, craft a ciphertext where the length field equals serverNonce.length (32 bytes), causing the server to extract an empty password. Additionally, because nonce binding is absent, any captured UserNameIdentityToken can be replayed in different sessions. The attack vector is network-based with high attack complexity, requiring no prior authentication. The issue is compounded by a secondary vulnerability where SecurityMode=None causes verifyClientSignature to return true unconditionally, bypassing channel-level signature verification. Patch status unknown at time of publication (2026-08-20).

## Affected products

- node-opcua node-opcua <= 2.165.0

## Identifiers

- CVE-2026-54155
- GHSA-mq36-523m-x7vv

## Timeline

- 2026-03-23: disclosed: Vulnerability discovery date
- 2026-07-03: advisory: GitHub advisory published
- 2026-08-20: other: GitHub Security Advisory Database updated

## References

- [https://api.github.com/users/stanleytobias](https://api.github.com/users/stanleytobias)
- [https://github.com/stanleytobias](https://github.com/stanleytobias)
- [https://api.github.com/users/stanleytobias/gists%7B/gist_id%7D](https://api.github.com/users/stanleytobias/gists%7B/gist_id%7D)
- [https://api.github.com/users/stanleytobias/repos](https://api.github.com/users/stanleytobias/repos)
- [https://avatars.githubusercontent.com/u/70893671?v=4](https://avatars.githubusercontent.com/u/70893671?v=4)
- [https://api.github.com/users/stanleytobias/events%7B/privacy%7D](https://api.github.com/users/stanleytobias/events%7B/privacy%7D)

## Related threats

- [node-opcua namespace-level access control bypass](https://junglewise.ai/threats/cve-2026-95860-node-opcua-is-an-opc-ua-implementation-for-typescript-and-node-js)
- [node-opcua TCP socket leak in keepalive reconnection](https://junglewise.ai/threats/cve-2026-68904-node-opcua-tcp-socket-leak-in-keepalive-reconnection)
- [node-opcua unbounded nonce cache heap exhaustion](https://junglewise.ai/threats/cve-2026-54156-node-opcua-unbounded-nonce-cache-heap-exhaustion)
- [node-opcua denial of service via excessive CloseSession requests](https://junglewise.ai/threats/cve-2022-24375-node-opcua-denial-of-service-via-excessive-closesession-requests)
- [node-opcua denial of service via message chunks](https://junglewise.ai/threats/cve-2022-21208-node-opcua-denial-of-service-via-message-chunks)
