This is a spare key left under the mat of your deployment network, not a citywide master key
CVE-2026-0386 is a Windows Deployment Services flaw tied to *hands-free deployment* using Unattend.xml. Microsoft says the risk appears when that answer file is sent over an unauthenticated RPC channel, allowing an attacker on an *adjacent network* to intercept sensitive deployment data and potentially turn that into credential theft or code execution. Affected ranges span WDS-capable Windows Server releases before the January 13, 2026 fixes, including Windows Server 2008 SP2/2008 R2 SP1 under Premium Assurance, 2012/2012 R2 under ESU, 2016 <10.0.14393.8783, 2019 <10.0.17763.8276, 2022 <10.0.20348.4648, Server 23H2 <10.0.25398.2092, and 2025 <10.0.26100.32230.
Microsoft's HIGH 7.5 rating is technically defensible in a lab, but it overstates day-two enterprise risk. The attack requires *adjacent-network position*, *native WDS usage*, and specifically *hands-free deployment* exposure; Microsoft also states Configuration Manager is not affected because it doesn't use this Unattend.xml mechanism. That combination slashes reachable population, so this lands as a MEDIUM unless your org still runs native WDS on shared or poorly segmented build networks.
4 steps from start to impact.
Get onto the deployment segment
tcpdump, Wireshark, or Responder are enough to validate the network position.- Access to the same deployment VLAN or another network path considered adjacent by the WDS service flow
- WDS is reachable from that segment
- A target is actively using or can be induced to use WDS
- This is not unauthenticated internet RCE
- Many enterprises isolate imaging networks from user and server LANs
- Modern NAC and switchport controls often block the rogue-device starting point
Catch or trigger insecure Unattend.xml retrieval
Unattend.xml transmitted over an unauthenticated RPC channel during WDS hands-free deployment. An attacker can passively observe the workflow or emulate a client well enough to request the file over the insecure path; a custom RPC client, Windows PE emulation, or adapted Impacket-style tooling would be the obvious weaponized route. This is the step most likely to separate theory from reliable exploitation.- Native WDS hands-free deployment is in use
AllowHandsFreeFunctionalityis absent on pre-April behavior or explicitly set to1- The WDS server is still operating in insecure mode
- Microsoft says Configuration Manager is not affected
- Many WDS deployments are boot-only and don't expose hands-free answer files
- April 14, 2026 updates moved the default to secure-by-default, so admins had to deliberately keep the insecure path alive
Microsoft-Windows-Deployment-Services-Diagnostics/Debug for insecure requests and insecure configuration. Most vuln scanners still only do build-level checks and won't verify the registry mode.Harvest deployment secrets
Unattend.xml frequently carries local admin passwords, domain join context, or deployment automation settings that can be parsed with trivial XML tooling. Tools are boring here: PowerShell XML parsing, xmllint, or simple grep-style extraction work.- The answer file actually contains useful secrets or trusted automation context
- Those credentials remain valid and sufficiently privileged
- Some enterprises already removed embedded secrets from answer files
- Least-privilege join accounts reduce blast radius
- Rotated or one-time deployment credentials can collapse attacker value fast
Unattend.xml. Detection is strongest after the fact via anomalous account use, not at the file-theft moment.Turn stolen trust into execution
psexec.py, wmiexec.py, or direct image/task manipulation through administrative access. This is why the CVE can end in full compromise, but only after a chain of environment-specific prerequisites.- Recovered credentials map to administrative or image-management privileges
- The attacker can reach the target systems over normal admin channels
- EDR, PAM, admin tiering, and image-signing processes frequently break this step
- The vuln does not hand an attacker universal RCE in one packet
- Blast radius is often limited to the WDS island unless the deployment account is overprivileged
The supporting signals.
| In-the-wild status | No confirmed public exploitation in the sources reviewed. The CVE record surfaced through CISA ADP with Exploitation: none and Automatable: no, and it is not in CISA KEV. |
|---|---|
| KEV status | Not KEV-listed as of the CISA Known Exploited Vulnerabilities Catalog reviewed for this assessment. |
| Proof-of-concept availability | No mainstream public PoC found in the reviewed results. That lowers opportunistic attacker pressure, though the primitives are straightforward for an internal operator with RPC/PXE knowledge. |
| EPSS | Not directly verified here. FIRST publishes daily EPSS by API/CSV, but a CVE-specific score for CVE-2026-0386 was not retrievable from the browsed source snippets used in this assessment. |
| CVSS vector reality check | CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H already admits two big brakes: adjacent network and high attack complexity. That is materially less dangerous than internet-reachable unauthenticated RCE. |
| Affected scope | Applies to native WDS scenarios using Unattend.xml hands-free deployment. Microsoft explicitly says Configuration Manager is not impacted because it uses WDS only for boot.wim and NBP files, not the vulnerable answer-file mechanism. |
| Fixed versions | Build thresholds from the CVE record/NVD include Windows Server 2016 10.0.14393.8783, 2019 10.0.17763.8276, 2022 10.0.20348.4648, Server 23H2 10.0.25398.2092, 2025 10.0.26100.32230; Rapid7 maps January fixes to KB5073698, KB5073696, KB5073722, KB5073723, KB5073457, KB5073450, and KB5073379. |
| Operational hardening timeline | Microsoft introduced Phase 1 on 2026-01-13 with eventing and a registry control, then switched to secure-by-default on 2026-04-14. After that, hands-free WDS deployments are disabled by default unless admins explicitly override the setting. |
| Exposure population | This is usually low internet exposure and often zero external exposure because WDS relies on PXE/TFTP/RPC/SMB deployment flows on ports like UDP 67/69/4011 and TCP 135/5040, which are normally confined to build networks. The real risk sits on internal deployment VLANs, not the public edge. |
| Disclosure and source | Publicly disclosed by Microsoft on 2026-01-13 as Windows Deployment Services Remote Code Execution Vulnerability. No public researcher attribution was visible in the reviewed sources. |
noisgate verdict.
The decisive downgrade factor is attacker position: this requires adjacent-network access to a niche deployment workflow, which means the attacker is already on or very near a sensitive internal segment. That sharply narrows exposed population compared with a normal remote Windows RCE, even though the downstream impact can be severe inside the affected WDS enclave.
Why this verdict
- Down from vendor HIGH:
AV:AplusAC:Hmeans this already starts from a constrained, same-segment style position rather than broad remote reachability. - Reachable population is small: Microsoft says the issue affects native WDS hands-free deployments and explicitly does not affect Configuration Manager's common PXE use case.
- Post-initial-access dynamics matter: requiring adjacent internal network presence implies the attacker has already crossed an earlier control boundary such as NAC, switchport control, or a prior host compromise.
- April hardening reduces exposure further: since April 14, 2026, secure-by-default behavior means defenders had to consciously keep insecure hands-free mode enabled for the vulnerable path to persist.
- Blast radius can still be ugly where it exists: if the answer file contains privileged deployment credentials, compromise of the build network can spill into server or workstation provisioning trust.
Why not higher?
This is not a one-shot internet RCE. The attacker needs adjacent-network position, a live WDS deployment path, native WDS hands-free usage, and an insecure configuration state that many enterprises either never used or stopped using after Microsoft's April 14, 2026 default hardening. Those compound prerequisites are exactly the kind of friction that should drag severity down.
Why not lower?
The impact is still real where WDS is used badly. A compromised build VLAN plus exposed Unattend.xml can leak secrets that matter, and deployment infrastructure has outsized trust over many endpoints. This is too much blast-radius potential to treat as backlog lint or ignore.
What to do — in priority order.
- Force secure mode — Set
HKLM\SYSTEM\CurrentControlSet\Services\WdsServer\Providers\WdsImgSrv\Unattend\AllowHandsFreeFunctionality=0on affected native WDS servers to block unauthenticated answer-file access. For a MEDIUM verdict there is no mitigation SLA, but this is the cleanest compensating control and should be applied at the next approved change if you still run native WDS. - Kill insecure exceptions — Hunt for servers where
AllowHandsFreeFunctionality=1keeps insecure hands-free behavior alive. That setting is an explicit risk acceptance; remove it before you forget why it was there. - Segment the imaging network — Constrain PXE/WDS traffic to dedicated deployment VLANs and tightly limit who can reach UDP
67/69/4011and TCP135/5040. This reduces the already narrow attack surface even further by making adjacent-network preconditions harder to satisfy. - Watch WDS debug events — Enable and monitor
Microsoft-Windows-Deployment-Services-Diagnostics/Debugfor insecure requests and insecure-mode warnings introduced by Microsoft's hardening guidance. This gives you direct evidence of whether the dangerous path is still being exercised. - Rotate deployment credentials — If
Unattend.xmlever carried local admin or domain-join secrets, rotate them and right-size privileges. This limits the payoff if the file was exposed before you hardened the servers.
- A perimeter WAF does not help; this is not an HTTP edge-service problem.
- Generic internet attack-surface scans do not prove safety; the dangerous path lives on internal PXE/RPC/SMB deployment flows.
- Patching alone is not enough if you deliberately keep
AllowHandsFreeFunctionality=1; that preserves insecure behavior by design. - Assuming SCCM/MECM guidance applies everywhere is wrong; the vuln is about native WDS hands-free deployments, while ConfigMgr is explicitly called out as unaffected.
Crowdsourced verification payload.
Run this on the target Windows Server that hosts WDS, locally or through PowerShell Remoting, as an Administrator. Invoke it with powershell.exe -ExecutionPolicy Bypass -File .\Test-CVE-2026-0386.ps1; it checks whether the WDS role is present, whether the server build is below Microsoft's fixed threshold, and whether the insecure override AllowHandsFreeFunctionality=1 is still enabled.
# Test-CVE-2026-0386.ps1
# Checks Windows Deployment Services exposure for CVE-2026-0386.
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN
$ErrorActionPreference = 'Stop'
function Get-VersionObject {
param([string]$Version)
try { return [version]$Version } catch { return $null }
}
function Get-FixedVersion {
param([string]$ProductName)
switch -Regex ($ProductName) {
'Windows Server 2025' { return '10.0.26100.32230' }
'Windows Server 2022' { return '10.0.20348.4648' }
'Windows Server 2019' { return '10.0.17763.8276' }
'Windows Server 2016' { return '10.0.14393.8783' }
'Windows Server 2012 R2' { return '6.3.9600.22968' }
'Windows Server 2012' { return '6.2.9200.25868' }
'Windows Server 2008 R2' { return '6.1.7601.28117' }
'Windows Server 2008' { return '6.0.6003.23717' }
default { return $null }
}
}
try {
$feature = Get-WindowsFeature -Name WDS -ErrorAction SilentlyContinue
if (-not $feature -or -not $feature.Installed) {
Write-Output 'PATCHED: WDS role not installed; host not affected by native WDS hands-free path.'
exit 0
}
$cv = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
$productName = [string]$cv.ProductName
$currentVersion = '{0}.{1}.{2}.{3}' -f $cv.CurrentMajorVersionNumber, $cv.CurrentMinorVersionNumber, $cv.CurrentBuild, $cv.UBR
if (-not $cv.CurrentMajorVersionNumber) {
# Older OSes may not have CurrentMajorVersionNumber; derive from CurrentVersion/CurrentBuild/UBR.
$base = if ($cv.CurrentVersion) { [string]$cv.CurrentVersion } else { '0.0' }
$build = if ($cv.CurrentBuild) { [string]$cv.CurrentBuild } else { '0' }
$ubr = if ($cv.UBR -ne $null) { [string]$cv.UBR } else { '0' }
$currentVersion = "$base.$build.$ubr"
}
$fixedVersion = Get-FixedVersion -ProductName $productName
$cur = Get-VersionObject $currentVersion
$fix = Get-VersionObject $fixedVersion
$regPath = 'HKLM:\SYSTEM\CurrentControlSet\Services\WdsServer\Providers\WdsImgSrv\Unattend'
$allowValue = $null
if (Test-Path $regPath) {
try {
$allowValue = (Get-ItemProperty -Path $regPath -Name 'AllowHandsFreeFunctionality' -ErrorAction Stop).AllowHandsFreeFunctionality
} catch {
$allowValue = $null
}
}
if (-not $fix -or -not $cur) {
Write-Output "UNKNOWN: Unable to map or parse OS version. Product='$productName' Current='$currentVersion' Fixed='$fixedVersion'."
exit 2
}
if ($cur -lt $fix) {
Write-Output "VULNERABLE: WDS installed and OS build $currentVersion is below fixed threshold $fixedVersion for $productName."
exit 1
}
if ($allowValue -eq 1) {
Write-Output "VULNERABLE: WDS installed, patched build present, but AllowHandsFreeFunctionality=1 keeps insecure hands-free deployment enabled."
exit 1
}
if ($allowValue -eq 0) {
Write-Output "PATCHED: WDS installed, OS build $currentVersion meets or exceeds fixed threshold $fixedVersion, and secure mode is enforced (AllowHandsFreeFunctionality=0)."
exit 0
}
Write-Output "UNKNOWN: WDS installed and OS build is patched, but AllowHandsFreeFunctionality is not set. If April 14, 2026 or later hardening is installed, default behavior is secure; otherwise verify manually in WDS diagnostics logs."
exit 2
}
catch {
Write-Output ('UNKNOWN: ' + $_.Exception.Message)
exit 2
}
If you remember one thing.
AllowHandsFreeFunctionality=1 so you can remove that exception in the next approved change window; because there is no active exploitation evidence and no KEV listing, there is no noisgate mitigation SLA — go straight to the 365-day remediation window. Under the noisgate remediation SLA, complete patching of affected WDS hosts and eliminate insecure hands-free usage within 365 days; if you find WDS on a shared or weakly segmented build VLAN, compress that internally because the real risk is concentrated and high-value even though the global reachable population is small.Sources
- Microsoft Support KB5074952 - WDS hands-free deployment hardening guidance
- NVD entry for CVE-2026-0386
- OpenCVE mirror of CVE record including Microsoft CNA data and CISA ADP enrichment
- Windows Message Center note on WDS hardening for CVE-2026-0386
- Microsoft Learn - Network Ports Used by Windows Deployment Services
- Rapid7 vulnerability database entry with KB mappings
- CISA Known Exploited Vulnerabilities Catalog
- FIRST EPSS overview and data availability
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.