🇰🇷 한글 설명
xrdp는 오픈소스 RDP 서버이며, 0.10.6 이하 버전에서 Client Control PDU 처리 시 길이 검증이 부족합니다. 원격의 인증되지 않은 공격자가 잘린 형태의 특수 PDU를 전송하면 범위를 벗어난 메모리 읽기가 발생하여 프로세스가 종료될 수 있습니다(서비스 거부). 다만 xrdp는 연결마다 새 프로세스를 fork하므로 전체 서비스가 중단될 가능성은 낮으며, 이 문제는 0.10.6.1 버전에서 수정되었습니다.
💡 쉬운 설명
xrdp라는 원격 데스크톱 서버에 오류가 있어, 외부인이 악의적으로 조작한 데이터를 보내면 해당 연결 프로세스가 비정상 종료될 수 있습니다. 연결마다 별도 프로세스가 동작하므로 전체 서비스가 멈출 가능성은 낮습니다.
🇺🇸 원문 (English)
xrdp is an open source RDP server. Versions 0.10.6 and prior contain a vulnerability concerning the processing of Client Control PDUs. During the RDP connection sequence, the parser does not perform sufficient length validation before reading specific data fields from the network stream. A remote, unauthenticated attacker could potentially exploit this flaw by sending a specially crafted, truncated Client Control PDU. Due to missing bounds checks, the xrdp process may perform out-of-bounds memory reads, which can result in the termination of the service (Denial of Service). However, since xrdp forks a new process for each connection by default, an out-of-bounds read causing a process crash is unlikely to bring down the entire xrdp service.This issue has been fixed in version 0.10.6.1.
📍 영향받는 시스템
xrdp 0.10.6 이하 버전을 사용하는 Linux 원격 데스크톱 서버
⚔️ 공격 벡터
인증 없이 네트워크로 접근 가능한 공격자가 잘린 형태의 특수 Client Control PDU를 RDP 연결 과정에 전송
🛡️ 대응 방법
xrdp를 0.10.6.1 이상 버전으로 업데이트
🔧 검증 코드
출력된 버전이 0.10.6.1 이상이면 패치된 상태이고, 0.10.6 이하이면 취약하므로 업데이트가 필요합니다.
xrdp --version 2>/dev/null || dpkg -l xrdp 2>/dev/null | grep xrdp