Microsoft has released an emergency out-of-band (OOB) update to address multiple issues introduced by this month's Patch Tuesday release — including problems affecting Remote Desktop Services (RDS). When a vendor breaks its own monthly cadence and ships fixes outside the normal cycle, that is a signal defenders should not ignore: either the original security update introduced operational regressions severe enough to disrupt production, or the underlying security issue warranted faster remediation than the monthly cycle allows.
In this case, organizations that applied the current month's cumulative updates — particularly on Windows Server systems running the Remote Desktop Session Host role — reported service disruptions tied to RDS functionality. The OOB release is Microsoft's corrective measure. But from a defensive standpoint, this creates a dangerous window: some organizations will hold off on patching entirely because the Patch Tuesday build caused instability, leaving them exposed to whatever vulnerabilities the original security update was meant to close. Others will apply the OOB fix blindly without validating it in their environment. Both responses carry risk.
This post breaks down what happened, how to verify your patch state, what to hunt for while your environment sits in a partially patched condition, and how to sequence remediation safely.
Technical Analysis
What Happened
Microsoft's standard Patch Tuesday release introduced regressions that affected Remote Desktop Services on supported Windows Server platforms. The symptoms reported align with a familiar pattern for RDS-impacting updates: session connection failures, intermittent disconnects from Remote Desktop Session Host (RDSH) servers, authentication or connection broker errors, and in some cases service instability requiring manual restart of the Remote Desktop Services (TermService) and related role services.
Microsoft's response — an out-of-band update — is issued only when a problem cannot wait for the next scheduled update cycle. These OOB packages are typically:
- Cumulative in nature for the affected component, but they may not be available through all channels (some OOB releases historically required manual download from the Microsoft Update Catalog rather than automatic delivery via WSUS/Windows Update).
- Supplemental to the Patch Tuesday update, meaning the original monthly security update remains a prerequisite in most servicing models.
Affected Systems
Based on the reported scope, defenders should treat the following as in-scope for verification:
- Windows Server systems with the Remote Desktop Session Host role installed — multi-user session hosts in RDS collections and Virtual Desktop Infrastructure (VDI) pools are the primary impact surface.
- Windows Server systems acting as RD Connection Brokers, RD Gateway, or RD Web Access — dependent role services can fail in cascade when the underlying session host components are unstable.
- Any Windows system that received this month's cumulative update and exposes RDP (TCP/3389) — including jump boxes, management servers, and internet-facing RD Gateway deployments, which are high-value targets in any partially patched window.
Why This Matters From a Threat Perspective
RDP remains one of the most abused initial-access and lateral-movement vectors in the industry. It is consistently among the top vectors in ransomware intrusions — exposed RDP is scanned for within minutes of appearing on the public internet, and credential-stuffing, brute-force, and NLA-bypass attempts against TCP/3389 are constant background noise for any SOC.
The specific danger in an OOB patch scenario is threefold:
- Patch hesitation. Admins who saw RDS break after Patch Tuesday may defer or roll back the security update. A rollback restores service but also reopens every vulnerability that update closed. Attackers monitor exactly these situations — a widely publicized broken patch means a measurable population of organizations will be running unpatched for longer than usual.
- Rollback without compensating controls. Rolling back a cumulative security update to restore RDS functionality is sometimes operationally necessary, but it must be treated as a temporary exception with compensating controls (network restriction, gateway enforcement, enhanced monitoring), not as a silent return to baseline.
- Incomplete OOB deployment. Because OOB updates may not flow through normal WSUS/Intune rings automatically, fleets can drift into a mixed state — some servers patched, some not — which complicates both operations and detection baselining.
Exploitation Status
The news item centers on Microsoft being compelled to ship emergency fixes for issues stemming from the Patch Tuesday release — i.e., the immediate driver is operational regression in RDS plus the security content the OOB update carries. There is no specific CVE identifier published in the source summary, and defenders should consult the Microsoft Security Update Guide entries for this month's release to confirm which CVEs are addressed by the OOB package and whether any are flagged as exploited or publicly disclosed. Until that verification is complete, treat every RDS-exposing server that is unpatched or rolled back as a higher-risk asset and monitor it accordingly.
Detection & Response
While you work through patch verification and deployment, your detection coverage should focus on the two realistic risk scenarios: (a) RDP-based intrusion attempts against servers that are unpatched or rolled back, and (b) RDS service instability masquerading as — or masking — an intrusion. TermService crashes, unexpected restarts, and anomalous logon patterns are the observables that matter.
The following detections are tuned to be high-signal. They are designed to catch attack-relevant behavior without drowning your queue in routine RDP noise.
---
title: Anomalous RDP Logon Type 10 from Unusual Source
description: Detects successful remote interactive (RDP) logons from accounts or workstations that do not normally use RDP, or from external source addresses. Relevant while RDS servers are in a partially patched state following the Microsoft out-of-band RDS fix.
references:
- https://attack.mitre.org/techniques/T1021/001/
- https://www.infosecurity-magazine.com/news/microsoft-releases-emergency-patch/
author: Security Arsenal
status: experimental
date: 2026/02/15
logsource:
product: windows
service: security
detection:
selection:
LogonType: 10
filter_known_rdp_sources:
IpAddress|startswith:
- '10.'
- '172.16.'
- '192.168.'
filter_accounts:
TargetUserName|endswith: '$'
condition: selection and not 1 of filter_*
falsepositives:
- Legitimate administrator RDP access from new jump hosts
- Helpdesk remote sessions from unmanaged subnets
level: medium
---
title: Remote Desktop Services Unexpected Termination or Restart
description: Detects the Remote Desktop Services (TermService) service terminating unexpectedly or being stopped/restarted, which may indicate the known post-Patch-Tuesday RDS instability addressed by Microsoft's out-of-band update, or tampering by an attacker preparing for or cleaning up after RDP-based intrusion.
references:
- https://attack.mitre.org/techniques/T1562/001/
- https://www.infosecurity-magazine.com/news/microsoft-releases-emergency-patch/
author: Security Arsenal
status: experimental
date: 2026/02/15
logsource:
product: windows
service: system
detection:
selection:
Provider_Name: 'Service Control Manager'
EventID:
- 7031
- 7034
- 7036
ServiceName|contains:
- 'Remote Desktop Services'
- 'TermService'
- 'Remote Desktop Connection Broker'
- 'Remote Desktop Gateway'
condition: selection
falsepositives:
- Scheduled maintenance and patching reboots
- Intentional service restarts by administrators during OOB patch deployment
level: medium
---
title: RDP Brute Force Followed by Successful Logon
description: Detects a high volume of failed network logons (4625, logon type 3 or 10) against an RDS host followed by a successful logon from the same source within a short window, consistent with password spraying or brute force against RDP during a patch gap.
references:
- https://attack.mitre.org/techniques/T1110/
- https://attack.mitre.org/techniques/T1021/001/
- https://www.infosecurity-magazine.com/news/microsoft-releases-emergency-patch/
author: Security Arsenal
status: experimental
date: 2026/02/15
logsource:
product: windows
service: security
detection:
selection_failed:
EventID: 4625
LogonType:
- 3
- 10
condition: selection_failed
falsepositives:
- Users with expired passwords repeatedly attempting logon
- Misconfigured service accounts with stale credentials
level: high
The third rule is most effective when paired with thresholding in your SIEM (e.g., 20+ failures from a single source IP within 10 minutes followed by any success) rather than firing on individual 4625 events.
KQL — Microsoft Sentinel / Defender
Use this hunt query to surface RDP logon anomalies and service instability on your RDS estate while the OOB patch is being validated and deployed. Correlate SecurityEvent data with service control events to distinguish patch-related instability from intrusion activity:
let Lookback = 7d;
let FailureThreshold = 15;
// Part 1: Sources with heavy RDP logon failures followed by any success
let BruteSources = SecurityEvent
| where TimeGenerated > ago(Lookback)
| where EventID == 4625 and LogonType in (3, 10)
| summarize Failures = count(), DistinctAccounts = dcount(TargetUserName) by IpAddress, Computer
| where Failures >= FailureThreshold;
SecurityEvent
| where TimeGenerated > ago(Lookback)
| where EventID == 4624 and LogonType == 10
| join kind=inner BruteSources on IpAddress
| summarize Successes = count(), Accounts = make_set(TargetUserName) by IpAddress, Computer, bin(TimeGenerated, 1h)
| sort by Successes desc;
// Part 2: TermService / RDS role service crash and restart activity
Event
| where TimeGenerated > ago(Lookback)
| where EventLog == "System"
| where Source == "Service Control Manager"
| where EventID in (7031, 7034, 7036)
| where RenderedDescription has_any ("Remote Desktop Services", "TermService", "Connection Broker", "Remote Desktop Gateway")
| project TimeGenerated, Computer, EventID, RenderedDescription
| sort by TimeGenerated desc;
Run both halves against your RDS session hosts, brokers, and gateways. Any source IP in Part 1 that is not a known scanner or misconfigured internal host warrants immediate account validation and, if the account doesn't belong, containment under your IR playbook.
Velociraptor VQL — Endpoint Hunt
If you need to triage a specific RDS host — for example, one that crashed after patching or one that accepted an anomalous session — this artifact enumerates RDP listeners, active sessions, and suspicious child processes of the RDS service host, which is a classic post-exploitation observable (an attacker who lands via RDP and executes tooling will often appear as processes under an interactive session):
-- RDS host triage: listeners, sessions, and suspicious interactive processes
LET listeners = SELECT Pid, Name, LocalAddress, LocalPort, Status
FROM netstat()
WHERE LocalPort in (3389, 443, 3391) AND Status =~ 'LISTEN'
LET suspicious_procs = SELECT Pid, Ppid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE (Name =~ '(?i)(cmd|powershell|pwsh|wscript|cscript|mshta|rundll32|regsvr32|net|nltest|quser|query)')
AND CommandLine =~ '(?i)(/c| -enc|encodedcommand|downloadstring|invoke-|whoami|net user|net localgroup|vssadmin|bcdedit)'
SELECT * FROM listeners
-- Suspicious command execution in interactive/RDP session context
SELECT Pid, Ppid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)(cmd|powershell|pwsh|mshta|rundll32|wscript|cscript)'
AND CommandLine =~ '(?i)(encodedcommand|downloadstring|invoke-expression|net user|net localgroup|vssadmin delete|bcdedit|wmic process)'
Findings here — particularly encoded PowerShell or account-creation commands executed in an RDP session context on a session host — should be escalated as potential intrusion, not treated as admin noise, until proven otherwise.
Remediation Script — Patch Verification (PowerShell)
Before deploying the OOB update, you need an accurate picture of which servers installed the problematic Patch Tuesday update, which have been rolled back, and which are pending reboot. Run this against your RDS estate (via your RMM, Ansible/PS remoting, or SCCM) to establish ground truth:
# RDS patch state verification for Microsoft OOB RDS fix
# Run elevated on each RDS host / broker / gateway, or via Invoke-Command at scale
$report = [ordered]@{}
$report.Hostname = $env:COMPUTERNAME
# 1. Confirm whether the Remote Desktop Session Host role is installed
$rdsRole = Get-WindowsFeature -Name RDS-RD-Server -ErrorAction SilentlyContinue
$report.RDSessionHostInstalled = $rdsRole.Installed
# 2. List hotfixes installed in the last 30 days (captures Patch Tuesday + any OOB applied)
$report.RecentHotfixes = Get-HotFix |
Where-Object { $_.InstalledOn -gt (Get-Date).AddDays(-30) } |
Sort-Object InstalledOn -Descending |
Select-Object HotFixID, Description, InstalledOn
# 3. Check for pending reboot (patch applied but not committed)
$pendingReboot = $false
if (Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending') { $pendingReboot = $true }
if (Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired') { $pendingReboot = $true }
$report.PendingReboot = $pendingReboot
# 4. Verify TermService health and recent crash history
$report.TermServiceStatus = (Get-Service -Name TermService -ErrorAction SilentlyContinue).Status
$report.RDSCrashEvents = Get-WinEvent -FilterHashtable @{
LogName = 'System'; Id = 7031, 7034; StartTime = (Get-Date).AddDays(-7)
} -ErrorAction SilentlyContinue |
Where-Object { $_.Message -match 'Remote Desktop|TermService' } |
Select-Object TimeCreated, Id, Message
# 5. Confirm NLA is enforced (critical compensating control during any patch gap)
$nla = Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -ErrorAction SilentlyContinue
$report.NLAEnabled = ($nla.UserAuthentication -eq 1)
# 6. Confirm RDP is not exposed without a gateway/VPN expectation (flag direct listeners)
$rdpListeners = Get-NetTCPConnection -LocalPort 3389 -State Listen -ErrorAction SilentlyContinue
$report.RDPListening = [bool]$rdpListeners
[PSCustomObject]$report
Any host reporting NLAEnabled = $false, PendingReboot = $true, or repeated RDSCrashEvents after patching should be prioritized for remediation before broad OOB rollout continues.
Remediation
Execute in this order. Do not skip the inventory step — a mixed patch state is harder to defend than a uniformly unpatched one.
-
Identify the exact KB numbers. Pull the Microsoft Security Update Guide and the Windows release health dashboard for this month's updates. Identify: (a) the original Patch Tuesday KB that introduced the RDS regression, and (b) the OOB KB that supersedes or supplements it for your specific OS builds (Windows Server 2016/2019/2022/2025 have distinct KBs). Do not deploy "the OOB patch" generically — deploy the build-specific package.
-
Inventory your RDS estate. Enumerate every server with RDS-RD-Server, RDS-Connection-Broker, RDS-Gateway, or RDS-Web-Access installed. Cross-reference against patch compliance data from WSUS/Intune/SCCM to bucket hosts into: fully patched + OOB applied, patched but no OOB, rolled back, and never patched.
-
Test the OOB update in a representative RDS environment first. OOB updates are shipped fast and have historically carried their own regressions. Validate session establishment, broker redirection, gateway authentication, and printing/clipboard redirection against a pilot collection before broad deployment. A 24–72 hour pilot ring is appropriate given the severity of the disruption being corrected.
-
Deploy via the correct channel. Check whether the OOB package is flowing through your normal update channel. Some OOB releases require manual import into WSUS or download from the Microsoft Update Catalog (https://www.catalog.update.microsoft.com/). If your patch management platform doesn't show it, that is a distribution problem to fix, not a reason to wait.
-
Handle rolled-back systems as exceptions with compensating controls. If you had to roll back the Patch Tuesday update to restore RDS service, those hosts are now running without this month's security fixes. Until they can take the OOB package: enforce NLA, restrict TCP/3389 to known management subnets via host firewall, place the hosts behind RD Gateway rather than direct exposure, and apply the enhanced monitoring from the Detection section above.
-
Verify NLA and gateway enforcement everywhere. Network Level Authentication is the single most important hardening control for RDP-facing infrastructure — it requires authentication before a full session is established, dramatically reducing the attack surface of pre-auth RDP vulnerabilities. Confirm
UserAuthentication = 1on the RDP-Tcp listener of every session host, and ensure no RDS host is reachable on 3389 directly from the internet (RD Gateway on 443 with MFA is the acceptable pattern). -
Confirm remediation and close the loop. After deployment, re-run the verification script: hotfix present, no pending reboot, TermService stable for 48+ hours, no new 7031/7034 crash events. Document patch level per host for audit purposes (relevant for PCI-DSS 6.x and CIS Control 7 continuous vulnerability management).
-
Debrief the process failure. If the Patch Tuesday update caused an outage in your environment, examine your deployment ring structure. Organizations with a canary/pilot ring for server updates caught this class of regression before production impact. If you deployed to 100% of session hosts simultaneously, that is a process gap worth fixing while it's fresh.
The broader lesson: out-of-band patches are a stress test for your vulnerability management program. The organizations that handle them well have current asset inventories, ring-based deployment, the ability to apply compensating controls quickly, and detection content ready for the gap window. Build for the next one — there will be a next one.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.