CVE-2026-69730: The Critical Windows DNS Vulnerability Every Admin Should Patch Now
CVE-2026-69730 is a critical Windows DNS Server remote code execution vulnerability rated CVSS 9.8. Learn what is affected, why domain controllers are at risk, how to check your servers, and why September's Windows updates also caused RDS problems.
Scope
CVE-2026-69730 is a critical Windows DNS Server remote code execution vulnerability rated CVSS 9.8. Learn what is affected, why domain controllers are at risk, how to check your servers, and why September's Windows updates also caused RDS problems.
DNS is one of those infrastructure components administrators expect to be boring.
It should answer questions such as:
Where is dc01.example.local?
Where is mail.example.com?
What IP belongs to application.example.local?
Unfortunately, when the DNS server itself contains a remotely exploitable memory-corruption vulnerability, boring infrastructure becomes a very attractive attack surface.
Microsoft's September 2026 security updates fix CVE-2026-69730, a critical remote code execution vulnerability in Windows DNS Server.
Its CVSS score is:
9.8 / 10
The important characteristics are even more interesting:
Attack Vector: Network
Attack Complexity: Low
Privileges Required: None
User Interaction: None
Impact: Remote Code Execution
Microsoft rates the vulnerability as Critical and assesses exploitation as:
Exploitation More Likely
For Windows administrators, that combination deserves immediate attention.
Especially because in a large number of Active Directory environments, the machine running DNS is not some disposable DNS appliance.
It is the Domain Controller.
The vulnerability in one sentence
An unauthenticated attacker capable of sending specially crafted network traffic to a vulnerable Windows DNS Server may be able to trigger a use-after-free memory corruption condition and execute arbitrary code on the server.
Translated into administrator language:
Attacker
↓
Malicious DNS traffic
↓
Windows DNS Server
↓
Memory corruption
↓
Remote Code Execution
No login page.
No malicious Word document.
No user clicking an attachment.
No valid Active Directory account.
No administrator credentials.
The vulnerable service only needs to be reachable.
CVE summary
| Property | Value |
|---|---|
| CVE | CVE-2026-69730 |
| Component | Windows DNS Server |
| Severity | Critical |
| CVSS | 9.8 |
| Weakness | CWE-416 — Use After Free |
| Attack vector | Network |
| Attack complexity | Low |
| Authentication required | No |
| User interaction | No |
| Impact | Remote Code Execution |
| Microsoft exploitability assessment | Exploitation More Likely |
| Known exploitation at disclosure | No confirmed exploitation |
The CVSS vector is:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Which translates roughly to:
AV:N Network reachable
AC:L Low attack complexity
PR:N No privileges required
UI:N No user interaction
C:H High confidentiality impact
I:H High integrity impact
A:H High availability impact
The vulnerability was disclosed as part of Microsoft's September 2026 security updates.
Why this vulnerability matters
CVSS scores alone do not tell the whole story.
A 9.8 vulnerability in an obscure optional application is one thing.
A 9.8 vulnerability in a service running on your Domain Controllers is something very different.
A typical Active Directory environment looks something like this:
┌───────────────────┐
Clients ────────►│ Domain Controller │
│ │
│ Active Directory │
│ Kerberos │
│ LDAP │
│ DNS │
└───────────────────┘
Windows DNS commonly runs directly on Domain Controllers.
That means successful remote code execution against the DNS service may potentially mean code execution on one of the most privileged systems in the entire organization.
The problem is no longer simply:
DNS server compromised
It may become:
Domain Controller compromised
And that potentially means:
Active Directory compromised
What does "use-after-free" mean?
Applications constantly allocate and release memory.
Simplified:
Application:
Give me some memory.
Operating system:
Here you go.
Application:
I'm finished with it.
Operating system:
Memory is now free.
A use-after-free vulnerability occurs when software later tries to use that memory again after it has already been released.
Conceptually:
Allocate object
↓
Use object
↓
Free object
↓
Object should no longer exist
↓
BUG
↓
Program accesses freed memory
Under the right circumstances, an attacker may be able to manipulate the memory that replaces the freed object.
The result can progress from:
application crash
to:
attacker-controlled memory state
and potentially:
arbitrary code execution
CVE-2026-69730 is classified as:
CWE-416 — Use After Free
Windows DNS Server is not the same as the Windows DNS client
Every Windows computer uses DNS.
That does not mean every Windows workstation exposes the same attack surface.
The important component here is the:
Windows DNS Server service
Think:
Windows workstation
↓
DNS client
↓
Not the main server-side attack scenario
versus:
Windows Server
↓
DNS Server role
↓
TCP/UDP 53
↓
Relevant attack surface
So the first administrator question should be:
Which of my Windows servers actually run the DNS Server role?
Which Windows Server versions are affected?
The vulnerability affects supported and extended-support Windows Server generations including:
Windows Server 2025
Windows Server 2022
Windows Server 2019
Windows Server 2016
Windows Server 2012 R2
Windows Server 2012
Affected product metadata also includes some corresponding Windows 10 servicing branches because components are shared between Windows client and server codebases.
The important practical point is:
If the server runs Windows DNS Server, check the September 2026 security update status.
First question: do I have Windows DNS servers?
Open PowerShell as Administrator:
Get-WindowsFeature DNS
A DNS server should show something similar to:
Display Name Name Install State
------------ ---- -------------
[X] DNS Server DNS Installed
If you see:
[ ] DNS Server
the DNS Server role is not installed on that machine.
Check whether the DNS service is running
Run:
Get-Service DNS
Example:
Status Name DisplayName
------ ---- -----------
Running DNS DNS Server
If you have:
DNS Server
and:
Status: Running
that machine belongs in your CVE-2026-69730 remediation inventory.
Find your Domain Controllers
In Active Directory:
Get-ADDomainController -Filter * |
Select-Object HostName, IPv4Address, Site
Example:
HostName IPv4Address Site
-------- ----------- ----
DC01.example.local 10.1.10.10 HQ
DC02.example.local 10.1.10.11 HQ
DC03.example.local 10.2.10.10 Branch
Do not simply assume that every DC runs DNS.
Verify.
For example:
Invoke-Command -ComputerName DC01,DC02,DC03 {
Get-Service DNS -ErrorAction SilentlyContinue
}
Check whether port 53 is listening
DNS normally uses:
UDP 53
TCP 53
Check UDP:
Get-NetUDPEndpoint -LocalPort 53 -ErrorAction SilentlyContinue
Check TCP:
Get-NetTCPConnection -LocalPort 53 -State Listen -ErrorAction SilentlyContinue
A working DNS server should normally have listeners on port:
53
Test DNS from another server
From another Windows machine:
Resolve-DnsName microsoft.com -Server 10.1.10.10
Or test your AD zone:
Resolve-DnsName example.local -Server 10.1.10.10
Example:
Name Type TTL Section IPAddress
---- ---- --- ------- ---------
example.local A 600 Answer 10.1.10.20
You can also test TCP connectivity:
Test-NetConnection 10.1.10.10 -Port 53
Example:
ComputerName : 10.1.10.10
RemotePort : 53
TcpTestSucceeded : True
Remember:
Test-NetConnection tests TCP.
Normal DNS frequently uses UDP.
Check your Windows build
Run:
Get-CimInstance Win32_OperatingSystem |
Select-Object Caption, Version, BuildNumber
Example:
Caption Version BuildNumber
------- ------- -----------
Microsoft Windows Server 2022 10.0.20348 20348
You can also use:
winver
But checking only the base build number is not enough.
Windows cumulative updates increase the servicing revision as well.
Check installed Windows updates
Run:
Get-HotFix |
Sort-Object InstalledOn -Descending |
Select-Object -First 15
This gives you an immediate view of recently installed Windows patches.
But remember:
Patch approved
is not the same as:
Patch installed
and:
Patch installed
is not necessarily the same as:
Patched version running after reboot
Always verify the running system after maintenance.
Important: the September update also broke RDS
There is one extremely important complication with the September 2026 Windows updates.
The original September 8, 2026 security updates introduced Remote Desktop Services problems on some Windows Server systems.
Administrators reported symptoms including:
RDP connection failures
Remote Desktop login problems
RDS instability
Servers hanging during Remote Desktop configuration
MMC becoming unresponsive
File Explorer becoming unresponsive
This creates an awkward situation.
You have a critical DNS vulnerability that you absolutely want to patch:
CVE-2026-69730
CVSS 9.8
but the original September security update itself could cause problems with Remote Desktop Services.
Microsoft therefore released out-of-band updates on September 14, 2026 to address the RDS regression.
The practical lesson: don't blindly install the first September KB
As of September 16, 2026, administrators should not think about this as:
Find the CVE-2026-69730 patch
Instead think:
Install the latest applicable cumulative update
for the Windows Server version.
Why?
Because the newer out-of-band cumulative updates include the earlier security fixes while also addressing the RDS regression where applicable.
Examples include:
Windows Server 2025
KB5129235
Build 26100.33451
Windows Server 2022
KB5129237
Build 20348.5631
Windows Server 2019
KB5129238
Build 17763.9247
Windows Server 2016
KB5129239
Build 14393.9514
Therefore:
OLD approach:
September 8 security update
↓
DNS vulnerability fixed
↓
Possible RDS problems
Preferred approach after the OOB release:
Latest September cumulative/OOB update
↓
DNS vulnerability fixed
+
RDS regression corrected where applicable
That is an important distinction for production administrators.
If you already installed the September 8 update
Do not panic.
First check whether the server actually experiences RDS problems.
Then check whether a newer applicable Microsoft cumulative update is available.
On affected Windows Server platforms, install the newer out-of-band update rather than removing the security update and returning the machine to a vulnerable state.
The bad response would be:
RDP stopped working
↓
Uninstall September security update
↓
Forget about it
Now RDP may work again...
but the critical DNS vulnerability may be back.
A better response is:
RDP problem detected
↓
Check Microsoft release health
↓
Install latest OOB cumulative update
↓
Restart
↓
Validate RDP
↓
Validate DNS
↓
Validate AD
Test RDP after patching
If Remote Desktop is important in your environment, add it to the maintenance checklist.
From another system:
Test-NetConnection DC01 -Port 3389
Example:
ComputerName : DC01
RemotePort : 3389
TcpTestSucceeded : True
This only confirms the RDP port is reachable.
It does not guarantee that authentication and the RDS stack are functioning correctly.
You should also perform a real test login where appropriate.
Check Remote Desktop Services
On the server:
Get-Service TermService
Expected:
Status Name DisplayName
------ ---- -----------
Running TermService Remote Desktop Services
After applying the September/OOB updates, validate:
RDP connection
authentication
desktop session
MMC
Server Manager
File Explorer
especially if that server is used heavily for remote administration.
Do not forget the console
This incident is also a good reminder:
A server should not be manageable exclusively through RDP.
For critical infrastructure, you should ideally have another recovery path such as:
Hyper-V console
VMware console
iLO
iDRAC
IPMI
BMC
cloud console
physical console
Otherwise an RDS regression can turn a normal patch problem into:
How do I get back into the server?
How urgent is CVE-2026-69730?
Look at the attack prerequisites.
The attacker needs:
Network access to the vulnerable DNS service
They do not need:
Windows credentials
Domain credentials
Administrator credentials
A logged-in user
A malicious attachment
A browser exploit
The CVSS properties are:
AV:N
AC:L
PR:N
UI:N
This is exactly the type of vulnerability administrators should prioritize.
Is the vulnerability being actively exploited?
At disclosure, Microsoft reported:
Publicly disclosed: No
Known exploitation: No
Exploitation: More Likely
That distinction matters.
There was no confirmed widespread exploitation at disclosure.
But:
No known exploitation
does not mean:
Safe to patch in three months
Microsoft explicitly considers exploitation more likely.
That should be enough reason to prioritize remediation.
Is it wormable?
You may see vulnerabilities like this described online as:
wormable
because the properties are concerning:
Network reachable
+
No authentication
+
Low complexity
+
No user interaction
+
Remote code execution
Those are certainly characteristics that could support automated exploitation.
But they do not automatically prove that a reliable self-propagating worm exists.
The technically accurate statement is:
CVE-2026-69730 has characteristics suitable for automated network exploitation, but that alone does not prove a self-propagating worm exists.
There is no need to exaggerate a CVSS 9.8 unauthenticated DNS RCE.
It is already serious enough.
Why Domain Controllers should be patched first
Consider a typical AD server:
DC01
├── Active Directory Domain Services
├── DNS
├── Kerberos
├── LDAP
└── Global Catalog
An administrator may think of DNS as merely:
a network service
But the actual security boundary is:
DNS service
↓
Domain Controller operating system
If attackers achieve arbitrary code execution on that machine, you potentially have an Active Directory incident.
That is why DNS-enabled Domain Controllers should be near the front of the patch queue.
Internet-facing Windows DNS is an even bigger concern
Ask yourself:
Does this Windows DNS server genuinely need to accept DNS traffic from the entire Internet?
There is a big difference between:
Internet
X
Firewall
X
Internal AD DNS
and:
Internet
↓
UDP/TCP 53
↓
Domain Controller
Your Active Directory DNS server should generally not also be your public authoritative Internet DNS server.
A cleaner architecture is:
Internet
↓
Public authoritative DNS
while:
Internal network
↓
Windows AD DNS
↓
Domain Controllers
The roles serve different security zones.
Check your firewall exposure
You can inspect Windows Firewall rules:
Get-NetFirewallRule |
Where-Object {
$_.DisplayName -match "DNS"
} |
Select-Object DisplayName, Enabled, Direction, Action
You can inspect port filters:
Get-NetFirewallPortFilter |
Where-Object {
$_.LocalPort -eq 53
}
Look for unnecessary exposure such as:
Source:
Any
Destination:
Domain Controller
Port:
53
Action:
Allow
If DNS should only serve internal networks, restrict access appropriately.
Firewall restrictions are not the fix
Segmentation reduces risk.
It does not remove vulnerable code.
Think:
Firewall
↓
Reduces who can reach the vulnerability
while:
Security update
↓
Removes the known vulnerability
Those are very different things.
The actual remediation remains:
PATCH THE SERVER
What if you cannot patch immediately?
Production reality exists.
Maybe the server cannot be restarted right now.
Temporary mitigation should focus on reducing network reachability:
Internet
X
│
Windows DNS
Restrict port 53 from:
Internet
guest networks
untrusted VLANs
unnecessary server segments
VPN pools that do not need DNS access
But remember:
Internal-only does not mean safe.
If an attacker compromises a workstation inside your network, internal DNS may become reachable.
Network segmentation buys time.
It does not fix CVE-2026-69730.
A practical patching checklist
First identify the DNS role:
Get-WindowsFeature DNS
Check the service:
Get-Service DNS
Check port 53:
Get-NetUDPEndpoint -LocalPort 53
Get-NetTCPConnection -LocalPort 53 -State Listen
Check the OS:
Get-CimInstance Win32_OperatingSystem |
Select-Object Caption, Version, BuildNumber
Check installed updates:
Get-HotFix |
Sort-Object InstalledOn -Descending |
Select-Object -First 15
Install the latest applicable cumulative Microsoft update, not necessarily the first September 8 package.
Restart where required.
Then validate DNS:
Resolve-DnsName microsoft.com -Server localhost
If the server is a Domain Controller:
dcdiag /test:dns
Check replication:
repadmin /replsummary
And because of the September RDS regression, also test:
Test-NetConnection localhost -Port 3389
plus a real Remote Desktop session if RDP is used.
Use DCDIAG after patching Domain Controllers
Run:
dcdiag /test:dns
For detailed output:
dcdiag /test:dns /v
Across the environment:
dcdiag /e /test:dns
After patching DNS-enabled Domain Controllers, verify:
DNS service running
AD zones loaded
DNS registrations healthy
forwarders working
AD-integrated zones available
clients resolving names
Do not consider patching complete simply because:
Windows Update: Successfully Installed
Infrastructure needs functional validation.
Check AD replication too
Run:
repadmin /replsummary
Then:
repadmin /showrepl
You do not want this:
DC01 patched successfully
followed several hours later by:
DC01 has not replicated since reboot.
Patch validation is part of patching.
Suggested patch order
If you have multiple DNS-enabled Domain Controllers:
DC01
DC02
do not patch and reboot both simultaneously.
Instead:
Verify DC02
↓
Patch DC01
↓
Restart DC01
↓
Test DNS
↓
Test AD
↓
Test replication
↓
Test RDP/RDS
↓
Continue with DC02
This maintains DNS and authentication availability during maintenance.
Example maintenance sequence
Suppose:
DC01 — 10.1.10.10
DC02 — 10.1.10.11
Both provide Active Directory DNS.
1. Verify DC02
Resolve-DnsName microsoft.com -Server 10.1.10.11
dcdiag /s:DC02 /test:dns
2. Patch DC01
Install the latest applicable cumulative update.
Restart.
3. Validate DC01
DNS:
Get-Service DNS
Resolve-DnsName microsoft.com -Server 10.1.10.10
AD DNS:
dcdiag /s:DC01 /test:dns
Replication:
repadmin /replsummary
RDS:
Get-Service TermService
Test-NetConnection DC01 -Port 3389
If RDP is used administratively, perform a real connection test as well.
4. Patch DC02
Only after DC01 has been confirmed healthy.
How to verify the vulnerability is actually closed
Do not stop at:
We deployed the update.
There are multiple stages:
Patch approved
is not:
Patch downloaded
which is not:
Patch installed
which is not:
Patched OS running after reboot
Your final evidence should include:
Server hostname
OS version
OS build
Installed KB
DNS role status
DNS service status
Restart completed
DNS functional test
AD health test
Replication test
RDS/RDP test
Example:
HOST: DC01
OS:
Windows Server 2022
BUILD:
20348.5631
DNS:
Running
DNS query:
PASS
DCDIAG DNS:
PASS
Replication:
PASS
RDP:
PASS
Now you have actual remediation evidence.
Don't forget forgotten DNS servers
The obvious machines are:
DC01
DC02
The dangerous machines are often:
OLD-DC
DR-DC
BRANCH-DC
TEST-DC
LEGACY-DNS
Inventory:
branch offices
disaster recovery sites
lab domains
child domains
old Domain Controllers
isolated networks
legacy Windows Servers
The most vulnerable Windows DNS server in your organization may not be the primary DC.
It may be the forgotten Server 2016 VM nobody has touched in years.
September contains multiple Windows DNS vulnerabilities
CVE-2026-69730 is not the only Windows DNS issue fixed in Microsoft's September 2026 security release.
Microsoft patched multiple DNS-related remote code execution vulnerabilities during the same release.
That is another reason not to think in terms of:
Install the CVE-2026-69730 patch
Windows Server security updates are cumulative.
The correct approach is:
Install the latest applicable cumulative update
so that the entire set of relevant DNS fixes is applied.
Monitoring after patching
After remediation, monitor for:
DNS service crashes
unexpected DNS.exe restarts
DNS query failures
unexpected DNS traffic spikes
unusual external sources contacting DNS
Windows Error Reporting events involving DNS
RDP/RDS failures
TermService problems
If you use:
Wazuh
Microsoft Sentinel
Defender
Splunk
Elastic
SIEM
consider monitoring both:
DNS service health
and:
Remote Desktop Services health
after the September updates.
What administrators should do today
If you run Windows DNS Server:
1. Inventory every Windows DNS server.
2. Identify which DNS servers are Domain Controllers.
3. Identify whether DNS is exposed to untrusted networks.
4. Check the current Windows build and installed KBs.
5. Check whether the server received the original September 8 update.
6. Check whether a newer September out-of-band cumulative update applies.
7. Install the latest applicable Microsoft cumulative update.
8. Restart if required.
9. Test DNS resolution.
10. Run DCDIAG on Domain Controllers.
11. Check AD replication.
12. Test RDP and Remote Desktop Services.
13. Record evidence that the server is healthy and patched.
Quick PowerShell checklist
Is DNS Server installed?
Get-WindowsFeature DNS
Is DNS running?
Get-Service DNS
Is UDP 53 listening?
Get-NetUDPEndpoint -LocalPort 53
Is TCP 53 listening?
Get-NetTCPConnection -LocalPort 53 -State Listen
Which Windows version is installed?
Get-CimInstance Win32_OperatingSystem |
Select-Object Caption, Version, BuildNumber
Which updates were recently installed?
Get-HotFix |
Sort-Object InstalledOn -Descending |
Select-Object -First 15
Does DNS work?
Resolve-DnsName microsoft.com -Server localhost
Is Active Directory DNS healthy?
dcdiag /test:dns
Is replication healthy?
repadmin /replsummary
Is Remote Desktop Services running?
Get-Service TermService
Is RDP reachable?
Test-NetConnection localhost -Port 3389
The important lesson
The scary part of CVE-2026-69730 is not simply:
CVSS 9.8
It is where the vulnerable component often lives.
In an Active Directory environment:
DNS
is frequently running on:
the Domain Controller
And the Domain Controller is responsible for:
authentication
Kerberos
LDAP
computer trust
user accounts
group policies
directory data
That makes a Windows DNS remote code execution vulnerability fundamentally different from a vulnerability in some random utility installed on a workstation.
The vulnerable service can sit directly on one of the most privileged systems in the organization.
Final recommendation
If you operate Windows DNS Server, treat CVE-2026-69730 as a high-priority patching task.
The technical properties are bad enough:
Remote
+
Unauthenticated
+
Low complexity
+
No user interaction
+
Remote Code Execution
+
Frequently running on Domain Controllers
But September 2026 also gives administrators an additional complication:
Critical DNS vulnerability
+
Original September update
+
RDS regression
Do not solve the RDS problem by simply removing security updates and leaving the DNS vulnerability exposed.
Instead:
Find your DNS servers
↓
Check current KB/build
↓
Install latest applicable cumulative/OOB update
↓
Restart safely
↓
Test DNS
↓
Test Active Directory
↓
Test replication
↓
Test RDS/RDP
Then document the result.
Because:
"We installed Windows Updates."
is not evidence.
This is:
DNS: PASS
AD: PASS
Replication: PASS
RDP: PASS
Patched build: confirmed