The September cumulative updates (KB5122871 on Server 2025, KB5122882 on 2022, KB5122876 on 2019) are quietly taking down Remote Desktop Services, and the part that makes it dangerous is when it happens. The servers patch clean, boot clean, and serve RDP sessions like nothing is wrong for a few hours. Then the failures start: inbound connections hang at the 'Connecting' screen, existing users find they can't log off, and the only reliable way back is a hard reset. Admins who rolled the updates back got their session hosts working again, sure, but rolling back a cumulative update is also how you undo the security fixes you just spent a Patch Tuesday cycle pushing. On a month where Microsoft shipped a record ~966 fixes and two actively exploited zero-days, that's a real bind, not a footnote.
The mechanism is what separates this from your usual patch-day gremlin, and it's ugly. Practitioners who actually went after the hang found it in the RDP server base library: when a session tears down, a code path calls RtlWaitOnAddress with no timeout, so the thread just waits. Because Local Session Manager funnels all session state changes through a single serialization point, that one stuck thread wedges every later logoff, session query, and broker connection behind it. The giveaway in the logs is a TerminalServices RemoteConnectionManager timeout (Event 20498) and a TermService sitting in STOP_PENDING instead of a clean crash. In other words, it's not a display driver melting or a broken service stopping; it's a synchronization defect in the teardown path that only reveals itself under the specific load of real people logging out. The failure being deferred by hours is why it stings: you've already cleared your patch window and declared the environment stable before it wakes up. And because the trigger is ordinary logoff churn rather than a spike you'd have on your radar, a quiet afternoon of users signing off can be exactly when your session fleet starts locking up, with no anomaly in your metrics to explain it.

So the practical question for anyone running RDS session-host collections is what you do about a deferred, load-triggered regression with no clean in-place fix. You can hold the bad build and eat the downtime risk on your most critical servers, or you can roll back and accept a temporary security exposure on exactly the patch that was this month's big story. Neither option is comfortable, and the clock on the exposure is whatever it takes Microsoft to acknowledge a bug it hasn't publicly confirmed yet. If you run RDS and you're still patching this cycle's update, I'd stage one session host, watch it through a real logoff cycle, and have the DISM rollback path rehearsed before the fleet's on it. Where would you put the tradeoff if your RDP farm is the load-bearing piece of a 24/7 operation, and the fix for the bug is the thing that un-patches you?
Sources
Comments
Post a Comment