CVE-2026-54155
Received Received - Intake

Authentication Bypass in node-opcua via RSA-OAEP Password Forgery

Vulnerability report for CVE-2026-54155, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-14

Last updated on: 2026-09-14

Assigner: GitHub, Inc.

Description

node-opcua is an OPC UA implementation for TypeScript and Node.js. Prior to 2.166.0, the UserNameIdentityToken authentication handler in packages/node-opcua-server/source/opcua_server.ts decrypts an RSA-OAEP password blob but does not verify that the trailing bytes match the current session serverNonce. An unauthenticated remote attacker can obtain the server public key through GetEndpoints and forge a blob whose little-endian length produces an empty password passed to isValidUser, compromising accounts that accept an empty password. Missing nonce binding also allows a captured UserNameIdentityToken ciphertext to be replayed in another session, and SecurityMode=None removes the separate client-signature safeguard. This issue is fixed in version 2.166.0.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-14
Last Modified
2026-09-14
Generated
2026-09-14
AI Q&A
2026-09-14
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
node-opcua node-opcua to 2.166.0 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-347 The product does not verify, or incorrectly verifies, the cryptographic signature for data.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in node-opcua versions before 2.166.0 involves improper handling of UserNameIdentityToken authentication. The server decrypts a password blob but fails to verify if trailing bytes match the session's serverNonce. This allows attackers to forge tokens that extract as empty passwords or replay captured tokens across sessions. The fix adds nonce verification to ensure password integrity.

Detection Guidance

To detect this vulnerability, check if your node-opcua server version is below 2.166.0. Use commands like 'npm list node-opcua' or 'node -e "console.log(require("node-opcua/package.json").version)"' to verify the installed version. Monitor server logs for unusual authentication attempts or empty password usage.

Impact Analysis

An unauthenticated remote attacker could bypass authentication by crafting tokens with empty passwords or replaying stolen tokens. This compromises accounts allowing empty passwords and enables session hijacking. Systems using SecurityMode=None face additional risk as client signature checks are bypassed entirely.

Compliance Impact

This vulnerability could lead to unauthorized access to sensitive data, violating confidentiality requirements in GDPR and HIPAA. Compromised authentication undermines access controls, potentially resulting in non-compliance with data protection regulations and legal penalties.

Mitigation Strategies

Upgrade node-opcua to version 2.166.0 or later immediately. Disable accounts that accept empty passwords. Ensure SecurityMode is not set to None. Review authentication logs for suspicious activity.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-54155. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart