본 글은 AI가 작성했습니다. 내용의 정확성을 위해 출처를 함께 확인하시기 바랍니다.
출처
Kaspersky Securelist · 2026.05 CVE-2025-68670: discovering an RCE vulnerability in xrdp https://securelist.com/cve-2025-68670/119742/

개요

CVE-2025-68670 xrdp RCE

▲ CVE-2025-68670 — xrdp 원격 코드 실행 취약점 (출처: Kaspersky Securelist)

Kaspersky 연구팀은 Kaspersky USB Redirector 보안 감사 중 오픈소스 RDP 서버인 xrdp에서 인증 전(pre-auth) 원격 코드 실행 취약점을 발견했다. CVE-2025-68670으로 지정된 이 취약점은 도메인 이름 파싱 로직의 경계 검사 미흡으로 인한 스택 기반 버퍼 오버플로우이며, 유효한 자격증명 없이도 악성 RDP 연결 요청만으로 서버에서 임의 코드를 실행할 수 있다.


취약점 정보

항목내용
CVE IDCVE-2025-68670
취약점 유형스택 기반 버퍼 오버플로우 (RCE)
공격 벡터네트워크 (RDP 프로토콜)
인증 요구없음 (pre-auth)
사용자 상호작용없음
영향 범위xrdp 서버 프로세스 내 임의 코드 실행
패치 버전0.10.5 / 0.9.27 / 0.10.4.1

취약한 구성요소

취약점은 xrdp_login_wnd.cxrdp_wm_parse_domain_information() 함수에 위치한다. 이 함수는 RDP 클라이언트로부터 수신한 도메인 이름을 파싱한다.

도메인 이름 첫 글자가 '_' 이면 해당 도메인을 IP 주소로 처리

문제는 512바이트 도메인 필드에서 256바이트 결과 버퍼로 데이터를 복사할 때 발생한다. g_strncpy()를 사용하지만, 복사 길이를 원본 문자열 내 구분자(__)의 위치를 기준으로 계산하기 때문에 목적 버퍼 크기를 초과할 수 있다.


공격 흐름

악성 RDP 파일 생성
공격자가 도메인 필드에 특수 조작된 문자열이 포함된 .rdp 파일 생성
RDP 연결 요청
Secure Settings Exchange 단계에서 Client Info PDU 전송 — 인증 전(pre-auth) 단계
xrdp 서버 수신
서버가 도메인 문자열을 UTF-16 → UTF-8로 변환 처리
인코딩 길이 팽창
키릴 문자(К 등) 활용 시 UTF-8 변환 결과가 원본보다 길어져 버퍼 초과 조건 생성
버퍼 오버플로우 발생
xrdp_wm_parse_domain_information() 내에서 256바이트 스택 버퍼에 초과 데이터 복사
리턴 주소 덮어쓰기
스택 오버플로우로 리턴 주소가 공격자 제어 값으로 덮어쓰여짐 (0x4141414141414141)
원격 코드 실행
함수 리턴 시 공격자 지정 주소로 점프 → xrdp 프로세스 권한으로 임의 코드 실행

핵심 기법: UTF-16 → UTF-8 인코딩 팽창

이 공격의 핵심은 문자 인코딩 변환 시 길이 차이를 악용하는 것이다.

RDP 프로토콜은 문자열을 UTF-16으로 전송하지만, xrdp 내부에서는 UTF-8로 변환한다. 키릴 문자(К, U+041A 등)는 UTF-16에서 2바이트지만 UTF-8로 변환하면 2바이트가 유지되거나 다른 인코딩으로 확장될 수 있다.

공격자는 이를 이용해:

  1. 512바이트 도메인 필드 제한은 맞추면서
  2. UTF-8 변환 후 256바이트 버퍼를 초과하는 페이로드를 구성한다

PoC 도메인 예시

_veryveryvery[KKKK...반복...KKKK]verylongdoAAAAAAAA__0
  • 반복된 키릴 K 문자열로 스택을 채우고
  • AAAAAAAA (0x4141414141414141)로 리턴 주소를 덮어쓴다
  • __0 구분자로 파싱 종료 위치를 지정

영향 받는 버전

소프트웨어취약 버전패치 버전
xrdp0.10.5 미만0.10.5 (main)
xrdp0.10.4.x0.10.4.1 (backport)
xrdp0.9.x0.9.27 (backport)
Kaspersky USB Redirector취약 xrdp 사용 버전최신 버전
Kaspersky Thin Client취약 xrdp 모듈 포함 버전최신 버전

공개 타임라인

날짜내용
2025-12-05Kaspersky, xrdp 메인테이너에 취약점 보고
2025-12-05메인테이너 수신 확인
2025-12-15조사 및 우선순위 지정 시작
2025-12-18취약점 확인 및 패치 작업 시작
2025-12-24CVE-2025-68670 할당
2026-01-27xrdp main 브랜치에 패치 머지
2026-05-08Securelist를 통해 공개

대응 방안

스택 카나리 보호 메커니즘

▲ 스택 카나리 보호 메커니즘 — 단독으로는 충분하지 않음 (출처: 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 메인테이너는 스택 카나리만으로 보호를 신뢰하지 말 것을 권고하고 있다.