🔍 CVE-2026-107240

7.6
CVSS Score
HIGH
2026-11-10
2026-11-10 01:17
✅ 완료

🇰🇷 한글 설명

VOS(이전 Versa FlexVNF)의 Node.js 웹 서비스 /authenticate 엔드포인트에서 사용자 입력 username 값이 child_process.exec()에 전달되며, escapeRegExp 필터가 개행 문자를 제거하지 않아 인증 없이 임의 셸 명령이 실행될 수 있습니다. 공격자는 페이지 로드로 얻은 CSRF 토큰만 있으면 됩니다. 프로비저닝 이후 해당 서비스를 비활성화하면 이 취약점은 악용되지 않습니다.

💡 쉬운 설명

장비를 처음 설정할 때 쓰는 웹 기능에 결함이 있어, 로그인 없이도 공격자가 장비에서 명령을 실행할 수 있습니다. 설정이 끝난 후에는 이 기능을 꺼두면 안전합니다.

🇺🇸 원문 (English)

The Node.js web service on VOS (previously Versa FlexVNF) is used for URL-based Zero Touch Provisioning (ZTP) of the VOS appliance and is not required after provisioning is complete. The /authenticate endpoint of this service passes user-supplied username and password values to child_process.exec() through a sanitizer (escapeRegExp) that removes regular expression metacharacters but not newline characters. An unauthenticated attacker can inject a newline character into the username field to execute arbitrary shell commands as the versa OS service user. No credentials are required; the attacker needs only a CSRF token, which can be obtained from an unauthenticated page load.  Versa’s security hardening guide for Hubs, Branches, and Controllers recommends disabling the Node.js web service after the initial provisioning of the VOS device. This vulnerability is not exploitable on VOS devices where the Node.js web service has been disabled.

📍 영향받는 시스템

Versa VOS (이전 Versa FlexVNF) Hub, Branch, Controller 장비의 Node.js ZTP 웹 서비스 활성화 상태

⚔️ 공격 벡터

인증 없이 CSRF 토큰을 얻은 뒤 /authenticate 엔드포인트의 username 필드에 개행 문자를 삽입해 OS 서비스 사용자 권한으로 임의 명령을 실행

🛡️ 대응 방법

Versa 보안 강화 가이드에 따라 초기 프로비저닝 완료 후 Node.js 웹 서비스를 비활성화하고, 벤더가 제공하는 패치를 적용

🔧 검증 코드

결과에 Node.js ZTP 관련 서비스가 active(running)으로 표시되면 노출 가능성이 있으므로 비활성화 및 패치가 필요하고, 표시되지 않거나 inactive/disabled이면 이 구성에서는 해당 서비스가 실행되지 않는 것입니다.

Shell / Script
systemctl list-units --type=service --all 2>/dev/null | grep -i -E 'node|ztp|provision'

📊 CVSS Vector String

CVSS Vector
CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H

💻 영향받는 소프트웨어

Node.js