CVE Tools
Back to blog

Two 9.8s in Windows DHCP Server: the unauthenticated heap-overflow RCEs hiding in July's Patch Tuesday

CVE-2026-50518 and CVE-2026-56159 are pre-auth, network-reachable RCEs in a service every Windows network runs. No public PoC yet — which is exactly the window to patch in.

Two 9.8s in Windows DHCP Server: the unauthenticated heap-overflow RCEs hiding in July's Patch Tuesday. CVE-2026-50518 and CVE-2026-56159 are pre-auth, network-reachable RCEs in a service every Window
Two 9.8s in Windows DHCP Server: the unauthenticated heap-overflow RCEs hiding in July's Patch Tuesday. CVE-2026-50518 and CVE-2026-56159 are pre-auth, network-reachable RCEs in a service every Window

Two of the highest-severity bugs Microsoft fixed on July 14, 2026 never made the headlines. They were overshadowed by the month's actively-exploited zero-days (per Rapid7's Patch Tuesday roundup). But CVE-2026-50518 and CVE-2026-56159 are both CVSS 9.8, both unauthenticated, both network-reachable, and both sit in the same place: the Windows DHCP Server service — a role that quietly runs on domain controllers and infrastructure boxes across almost every Windows network on earth.

9.8CVSS 3.1 for both CVEsCritical · unauthenticated · network
95.5thEPSS percentile for CVE-2026-50518top ~4.5% by exploit likelihood
0Public PoCs so farthe pre-exploit window is open
2Distinct 9.8 RCEs, one servicesame July 14 update

The same bug class, twice

Both CVEs carry an identical description and an identical weakness: a heap-based buffer overflow (CWE-122) in Windows DHCP Server that "allows an unauthorized attacker to execute code over a network." The CVSS vectors are byte-for-byte the same — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — meaning no credentials, no user click, low attack complexity, full compromise of confidentiality, integrity and availability.

So if the severity is identical, why treat them differently? Because impact (CVSS) and likelihood (EPSS) are separate signals — and here they diverge hard.

CVE-2026-50518 vs CVE-2026-56159

CVE-2026-50518CVE-2026-56159
CVSS 3.19.8 Critical9.8 Critical
WeaknessCWE-122 heap overflowCWE-122 heap overflow
VectorAV:N/AC:L/PR:N/UI:NAV:N/AC:L/PR:N/UI:N
EPSS score0.111 (~11.1%)0.010 (~1.0%)
EPSS percentile95.5th59.1th
Public PoCNoneNone
In CISA KEVNo (as of 2026-07-31)No (as of 2026-07-31)

Why DHCP is a worst-case blast radius

DHCP is not a niche add-on. The DHCP Server role hands out IP configuration to every client on a segment, it typically runs on Windows Server, and in most environments it's co-located with Active Directory and DNS on the same domain controllers. A memory-corruption bug that runs code inside that service is therefore not "a DHCP outage" — it's remote code execution on the machine that authenticates your whole domain.

CVE-2026-50518 / CVE-2026-56159 — abstract attack path

  1. Attacker on a reachable segment — No credentials. Network path to the DHCP Server service (UDP 67).
  2. Crafted DHCP packet — Malformed message triggers the parser.
  3. Heap-based buffer overflow (CWE-122) — Memory corruption inside the DHCP Server service.
  4. Remote code execution — No auth, no user interaction (AV:N/AC:L/PR:N/UI:N).
  5. DHCP often = a domain controller — Role commonly co-located with AD/DNS.
  6. Domain-wide compromise / rogue config — Lateral movement, credential access, poisoned network config.

Who's affected

Both CVEs share the exact same affected surface — the DHCP Server role across supported (and some legacy) Windows Server builds, plus the LTSC Windows 10 editions that can carry it. Because the affected ranges are identical, one patch table covers both bugs: get the DHCP Server service to at least the build below.

Windows releaseFixed build (update to at least)
Windows Server 2012 (incl. Server Core)6.2.9200.26226
Windows Server 2012 R2 (incl. Server Core)6.3.9600.23291
Windows Server 2016 / Server Core · Windows 10 160710.0.14393.9339
Windows Server 2019 / Server Core · Windows 10 180910.0.17763.9020
Windows Server 202210.0.20348.5386
Windows Server 2025 (incl. Server Core)10.0.26100.33158

Triage before a PoC lands

There's no vendor workaround for either CVE (has_workaround = false on both) — the fix is the July cumulative update. Until every DHCP server is patched, treat these as a race and shrink the exposure:

  1. Patch the July 14 cumulative update on every server running the DHCP Server role, and confirm the OS/DHCP build meets the table above. There is no partial mitigation short of the update.
  2. Inventory first. Enumerate authorized DHCP servers in the domain and the machines that actually run the role — you can only race for boxes you know exist.
  3. Reduce reachability. DHCP is meant to be spoken to only from local segments via relay/IP-helper. Make sure UDP 67 to your DHCP servers is not reachable from user VLANs, guest networks, or anything internet-adjacent.
  4. Separate roles where you can. The damage multiplier is DHCP sitting on a domain controller. New deployments should keep DHCP off DCs; existing ones should prioritise those hosts for patching.
  5. Watch for crashes. Heap overflows frequently crash the target before they achieve reliable code execution — unexpected DHCP Server service restarts are worth an alert.
Find your DHCP servers and confirm the build
# List authorized DHCP servers in Active DirectoryGet-DhcpServerInDC# On a suspected DHCP host: confirm the role is installedGet-WindowsFeature -Name DHCP# Check the OS build — compare against the fixed-build table[System.Environment]::OSVersion.Version

The honest part: no public exploit — yet

In the cve.tools index, both CVEs read has_exploit: false: no Metasploit module, no Nuclei template, no public proof-of-concept. That is genuinely good news, and it's the reason this is a pre-exploit story rather than an incident-response one.

Timeline

  1. Microsoft publishes CVE-2026-50518 and CVE-2026-56159
    Both rated CVSS 9.8; fixes ship in the July Patch Tuesday cumulative updates.
  2. CVE-2026-50518 record last updated
    EPSS sits at the 95.5th percentile — still no public exploit.
  3. No public PoC, not in CISA KEV
    has_exploit = false for both in the cve.tools index; the patch-ahead window remains open.

CVE, CVSS and EPSS data current as of 2026-07-31