개요

▲ CVE-2025-68670 — xrdp 원격 코드 실행 취약점 (출처: Kaspersky Securelist)
Kaspersky 연구팀은 Kaspersky USB Redirector 보안 감사 중 오픈소스 RDP 서버인 xrdp에서 인증 전(pre-auth) 원격 코드 실행 취약점을 발견했다. CVE-2025-68670으로 지정된 이 취약점은 도메인 이름 파싱 로직의 경계 검사 미흡으로 인한 스택 기반 버퍼 오버플로우이며, 유효한 자격증명 없이도 악성 RDP 연결 요청만으로 서버에서 임의 코드를 실행할 수 있다.
취약점 정보
| 항목 | 내용 |
|---|---|
| CVE ID | CVE-2025-68670 |
| 취약점 유형 | 스택 기반 버퍼 오버플로우 (RCE) |
| 공격 벡터 | 네트워크 (RDP 프로토콜) |
| 인증 요구 | 없음 (pre-auth) |
| 사용자 상호작용 | 없음 |
| 영향 범위 | xrdp 서버 프로세스 내 임의 코드 실행 |
| 패치 버전 | 0.10.5 / 0.9.27 / 0.10.4.1 |
취약한 구성요소
취약점은 xrdp_login_wnd.c의 xrdp_wm_parse_domain_information() 함수에 위치한다. 이 함수는 RDP 클라이언트로부터 수신한 도메인 이름을 파싱한다.
도메인 이름 첫 글자가 '_' 이면 해당 도메인을 IP 주소로 처리
문제는 512바이트 도메인 필드에서 256바이트 결과 버퍼로 데이터를 복사할 때 발생한다. g_strncpy()를 사용하지만, 복사 길이를 원본 문자열 내 구분자(__)의 위치를 기준으로 계산하기 때문에 목적 버퍼 크기를 초과할 수 있다.
공격 흐름
.rdp 파일 생성К 등) 활용 시 UTF-8 변환 결과가 원본보다 길어져 버퍼 초과 조건 생성xrdp_wm_parse_domain_information() 내에서 256바이트 스택 버퍼에 초과 데이터 복사0x4141414141414141)핵심 기법: UTF-16 → UTF-8 인코딩 팽창
이 공격의 핵심은 문자 인코딩 변환 시 길이 차이를 악용하는 것이다.
RDP 프로토콜은 문자열을 UTF-16으로 전송하지만, xrdp 내부에서는 UTF-8로 변환한다. 키릴 문자(К, U+041A 등)는 UTF-16에서 2바이트지만 UTF-8로 변환하면 2바이트가 유지되거나 다른 인코딩으로 확장될 수 있다.
공격자는 이를 이용해:
- 512바이트 도메인 필드 제한은 맞추면서
- UTF-8 변환 후 256바이트 버퍼를 초과하는 페이로드를 구성한다
PoC 도메인 예시
_veryveryvery[KKKK...반복...KKKK]verylongdoAAAAAAAA__0
- 반복된 키릴
K문자열로 스택을 채우고 AAAAAAAA(0x4141414141414141)로 리턴 주소를 덮어쓴다__0구분자로 파싱 종료 위치를 지정
영향 받는 버전
| 소프트웨어 | 취약 버전 | 패치 버전 |
|---|---|---|
| xrdp | 0.10.5 미만 | 0.10.5 (main) |
| xrdp | 0.10.4.x | 0.10.4.1 (backport) |
| xrdp | 0.9.x | 0.9.27 (backport) |
| Kaspersky USB Redirector | 취약 xrdp 사용 버전 | 최신 버전 |
| Kaspersky Thin Client | 취약 xrdp 모듈 포함 버전 | 최신 버전 |
공개 타임라인
| 날짜 | 내용 |
|---|---|
| 2025-12-05 | Kaspersky, xrdp 메인테이너에 취약점 보고 |
| 2025-12-05 | 메인테이너 수신 확인 |
| 2025-12-15 | 조사 및 우선순위 지정 시작 |
| 2025-12-18 | 취약점 확인 및 패치 작업 시작 |
| 2025-12-24 | CVE-2025-68670 할당 |
| 2026-01-27 | xrdp main 브랜치에 패치 머지 |
| 2026-05-08 | Securelist를 통해 공개 |
대응 방안

▲ 스택 카나리 보호 메커니즘 — 단독으로는 충분하지 않음 (출처: Kaspersky Securelist)
즉시 조치
- xrdp를 패치 버전으로 즉시 업그레이드 (0.10.5 / 0.9.27 / 0.10.4.1)
- Kaspersky USB Redirector, Thin Client 사용 시 최신 버전으로 업데이트
- 방화벽 및 VPN을 통해 RDP 접근 범위 제한
탐지 포인트
- 비정상적으로 긴 도메인 필드가 포함된 RDP 연결 시도 로깅
- xrdp 프로세스의 비정상 종료 또는 크래시 모니터링
- 스택 카나리(stack canary) 위반 이벤트 알림
추가 보안 강화
- xrdp 컴파일 시 스택 카나리 활성화 (대부분 현대 컴파일러 기본값)
- ASLR(Address Space Layout Randomization) 활성화
- xrdp 불필요 시 비활성화 후 보안 대안 솔루션 사용
- Control Flow Guard(CFG) 등 미티게이션 기법 적용
참고: xrdp 메인테이너는 스택 카나리만으로 보호를 신뢰하지 말 것을 권고하고 있다.