🔍 CVE-2026-54155

7.7
CVSS Score
HIGH
2026-09-14
2026-09-30 19:38
✅ 완료

🇰🇷 한글 설명

node-opcua의 UserNameIdentityToken 인증 핸들러에서 RSA-OAEP 비밀번호 블롭의 trailing bytes가 현재 세션의 serverNonce와 일치하는지 검증하지 않는 취약점이 발견되었습니다. 공격자는 이를 악용하여 빈 비밀번호를 전달하거나 캡처된 인증 토큰을 재전송(Replay)함으로써 인증을 우회할 수 있습니다. 이 문제는 2.166.0 버전에서 수정되었습니다.

💡 쉬운 설명

로그인 과정에서 서버가 보낸 일회용 암호 확인 절차가 누락되어, 공격자가 가짜 로그인 정보를 보내거나 이전에 훔친 정보를 다시 사용하여 접속할 수 있는 문제입니다. 특히 비밀번호가 비어있는 계정의 경우 보안이 매우 취약해질 수 있습니다.

🇺🇸 원문 (English)

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.

📍 영향받는 시스템

node-opcua 2.166.0 미만 버전

⚔️ 공격 벡터

원격에서 조작된 RSA-OAEP 블롭을 전송하거나 캡처된 인증 토큰을 재전송하는 방식

🛡️ 대응 방법

node-opcua를 2.166.0 이상의 최신 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 node-opcua의 버전이 2.166.0 미만인지 확인하십시오.

Shell / Script
npm list node-opcua

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L

💻 영향받는 소프트웨어

Node.js