Back to Intelligence

ZDI-26-708: Unpatched Microsoft Windows HTTP Proxy Local Privilege Escalation — Detection and Hardening Guide

SA
Security Arsenal Team
September 16, 2026
10 min read

The Zero Day Initiative has published ZDI-26-708, an advisory covering an unpatched privilege escalation vulnerability in the Microsoft Windows HTTP Proxy component. Per the advisory, a local attacker who has already achieved low-privileged code execution on a target system can leverage this flaw to gain elevated privileges. ZDI assigned a CVSS base score of 5.3, which reflects the local attack vector and the prerequisite of initial code execution — but do not let the middling score lull you into deprioritizing it.

This is the classic second-stage payload problem. In the intrusions we respond to at Security Arsenal, initial access is rarely the endgame. Phishing payloads, malicious macros, drive-by downloads, and post-exploitation toolkits almost universally land in a low-integrity context first, then reach for a local privilege escalation (LPE) primitive to get to SYSTEM. An unpatched, publicly documented LPE in a core Windows component like HTTP proxy handling is exactly the kind of primitive that gets folded into commodity malware loaders and red team toolkits within days of publication.

Because there is no vendor patch available as of this writing, your defensive posture has to shift to detection, attack surface reduction, and monitoring the adjacent behaviors that exploitation of this bug requires.

Technical Analysis

What We Know

AttributeDetail
AdvisoryZDI-26-708
CVENone assigned yet (ZDI track only)
VendorMicrosoft
Affected ComponentWindows HTTP Proxy (WinHTTP proxy handling / WinHTTP Web Proxy Auto-Discovery service stack)
Attack VectorLocal — attacker must already execute low-privileged code
ImpactPrivilege escalation
CVSS5.3
Patch StatusUnpatched — zero-day posture
Advisory URLhttp://www.zerodayinitiative.com/advisories/ZDI-26-708/

Why the HTTP Proxy Component Matters

The WinHTTP proxy stack — including the WinHTTP Web Proxy Auto-Discovery Service (WinHttpAutoProxySvc) and the per-user proxy configuration stored under HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings — runs code paths that cross privilege boundaries. Proxy auto-configuration (WPAD/PAC) involves parsing attacker-influenceable JavaScript in a higher-privilege context, and proxy resolution is invoked by services and applications running as SYSTEM or as other users. Historically, this component family has produced privilege escalation and cross-context abuse bugs precisely because it sits at the intersection of unprivileged user configuration and privileged execution.

While ZDI's public summary does not disclose the root-cause mechanics (standard practice for unpatched advisories), the exploitation prerequisites tell us what to watch:

  1. Low-privileged code execution first. This means the LPE will be chained. Any EDR telemetry showing a user-context process probing or manipulating proxy configuration, invoking proxy-related COM/RPC interfaces, or interacting with the WinHTTP AutoProxy service shortly before an integrity-level transition is a strong signal.
  2. Local interaction with the proxy component. Expect exploitation to involve IPC with the privileged proxy-handling code — named pipes, RPC endpoints, COM objects, or abuse of the per-user proxy settings that privileged processes consume.
  3. Post-exploitation markers. Successful LPE typically results in a new process or thread at SYSTEM integrity, service installation, scheduled task creation, or token manipulation.

Exploitation Status

As of publication, there is no confirmed in-the-wild exploitation, no public proof-of-concept we are aware of, and the vulnerability is not listed in CISA's Known Exploited Vulnerabilities catalog — because there is no patch and no CVE yet, KEV inclusion is not applicable at this stage. However, ZDI advisories follow a coordinated disclosure timeline, which means Microsoft has had the details for some time. Treat the public advisory as the starting gun: exploit developers monitor ZDI publications aggressively, and patch-gap windows are when unpatched LPEs are most dangerous.

Detection & Response

With no patch, detection engineering is your primary control. The detections below target the observable behaviors surrounding this class of bug: proxy configuration tampering, suspicious interaction with the WinHTTP AutoProxy service, and the post-exploitation artifacts of a successful LPE. Deploy them as a layered set — none of them alone is conclusive, but together they catch the exploitation chain at multiple points.

Sigma Rules

YAML
---
title: Proxy Auto-Config URL Tampering via Registry
id: 3f7a1c92-8e4d-4b5a-9c12-7d2e5f8a9016
status: experimental
description: Detects modification of per-user proxy AutoConfigURL or ProxyServer settings, a behavior associated with abuse of the Windows HTTP Proxy component and post-exploitation traffic redirection.
references:
  - http://www.zerodayinitiative.com/advisories/ZDI-26-708/
  - https://attack.mitre.org/techniques/T1112/
author: Security Arsenal
date: 2026/01/15
tags:
  - attack.defense_evasion
  - attack.t1112
logsource:
  category: registry_set
  product: windows
detection:
  selection:
    TargetObject|contains:
      - '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL'
      - '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer'
      - '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\DefaultConnectionSettings'
  filter_legitimate_browsers:
    Image|endswith:
      - '\msedge.exe'
      - '\chrome.exe'
      - '\firefox.exe'
  condition: selection and not 1 of filter_legitimate_*
falsepositives:
  - Enterprise GPO-driven proxy configuration deployment
  - Browser first-run configuration
level: medium
---
title: WinHTTP Proxy Configuration Changed via Netsh
id: 9c4e2b17-6f3a-4d8c-b2e1-4a7f9d3c5e82
status: experimental
description: Detects use of netsh to modify WinHTTP proxy settings, which can precede or follow abuse of HTTP proxy handling and is rarely performed outside administrative change windows.
references:
  - http://www.zerodayinitiative.com/advisories/ZDI-26-708/
  - https://attack.mitre.org/techniques/T1112/
author: Security Arsenal
date: 2026/01/15
tags:
  - attack.defense_evasion
  - attack.t1112
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    Image|endswith: '\netsh.exe'
    CommandLine|contains|all:
      - 'winhttp'
      - 'proxy'
    CommandLine|contains:
      - 'set'
      - 'import'
falsepositives:
  - Legitimate administrative proxy configuration during system provisioning
level: medium
---
title: Child Process Spawned by WinHTTP AutoProxy Service Host
id: 5b8d3f61-2a9c-4e7b-a1d4-8c6e2f5b9037
status: experimental
description: Detects unexpected child processes spawned by the svchost instance hosting the WinHTTP Web Proxy Auto-Discovery Service, which may indicate successful exploitation of the HTTP proxy component for privilege escalation.
references:
  - http://www.zerodayinitiative.com/advisories/ZDI-26-708/
  - https://attack.mitre.org/techniques/T1068/
author: Security Arsenal
date: 2026/01/15
tags:
  - attack.privilege_escalation
  - attack.t1068
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    ParentCommandLine|contains: 'WinHttpAutoProxySvc'
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\pwsh.exe'
      - '\rundll32.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
falsepositives:
  - Rare; investigate any hit
level: high

KQL — Microsoft Sentinel / Defender

This query correlates proxy configuration changes with process execution in the same time window on the same device, surfacing the chained behavior (proxy tampering followed by elevation activity) that exploitation of ZDI-26-708 would produce. It also flags unexpected children of the AutoProxy service host.

KQL — Microsoft Sentinel / Defender
let lookback = 7d;
let ProxyRegEvents =
    DeviceRegistryEvents
    | where Timestamp > ago(lookback)
    | where RegistryKey has @"Software\Microsoft\Windows\CurrentVersion\Internet Settings"
    | where RegistryValueName in~ ("AutoConfigURL", "ProxyServer", "DefaultConnectionSettings")
    | where InitiatingProcessFileName !in~ ("msedge.exe", "chrome.exe", "firefox.exe", "svchost.exe", "System")
    | project RegTime=Timestamp, DeviceId, DeviceName, RegistryValueName, RegistryValueData,
              InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountName;
let SuspiciousSvcChildren =
    DeviceProcessEvents
    | where Timestamp > ago(lookback)
    | where InitiatingProcessCommandLine has "WinHttpAutoProxySvc"
    | where FileName in~ ("cmd.exe", "powershell.exe", "pwsh.exe", "rundll32.exe", "wscript.exe", "cscript.exe", "mshta.exe")
    | project ChildTime=Timestamp, DeviceId, DeviceName, ChildProcess=FileName, ChildCommandLine=ProcessCommandLine,
              InitiatingProcessCommandLine, AccountName;
ProxyRegEvents
| join kind=fullouter SuspiciousSvcChildren on DeviceId
| extend AlertTime = coalesce(RegTime, ChildTime)
| summarize arg_max(AlertTime, *) by DeviceId, DeviceName
| project AlertTime, DeviceName, RegistryValueName, RegistryValueData,
          InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountName,
          ChildProcess, ChildCommandLine, AccountName
| order by AlertTime desc

Velociraptor VQL

Use this artifact to sweep your fleet for anomalous per-user proxy configuration — a PAC URL pointing at localhost, an RFC1918 host, or an unfamiliar external host is a strong indicator of proxy abuse, whether as the exploitation vector or as post-compromise traffic manipulation.

VQL — Velociraptor
-- Hunt for anomalous per-user proxy configuration across all user hives
-- Suspicious: AutoConfigURL set to non-corporate values, ProxyServer pointing to localhost or unexpected hosts
LET users = SELECT Name, Uid FROM Artifact.Windows.Sys.Users()
SELECT Name AS UserName,
       AutoConfigURL,
       ProxyServer,
       ProxyEnable,
       FullPath AS RegistryPath
FROM foreach(row=users,
query={
    SELECT AutoConfigURL, ProxyServer, ProxyEnable, FullPath
    FROM read_reg_key(key="Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings",
                      accessor="raw_reg", root="HKEY_USERS\\" + Uid)
})
WHERE AutoConfigURL OR (ProxyEnable AND ProxyServer)

PowerShell — Audit and Hardening Script

Since no patch exists, this script audits proxy configuration across all loaded and unloaded user profiles, identifies the AutoProxy service state, and establishes a monitoring baseline. Run it via your RMM or as a scheduled task on high-value assets.

PowerShell
# ZDI-26-708 Audit Script — Windows HTTP Proxy LPE (unpatched)
# Run elevated. Outputs findings to console and a CSV for SIEM ingestion.

$results = @()

# 1. Audit WinHTTP system-wide proxy configuration
Write-Host "=== WinHTTP System Proxy Configuration ===" -ForegroundColor Cyan
$winhttp = netsh winhttp show proxy
$winhttp

# 2. Audit per-user proxy settings in all profiles
$profiles = Get-ChildItem "Registry::HKU" | Where-Object { $_.PSChildName -match '^S-1-5-21' }
foreach ($profile in $profiles) {
    $keyPath = "Registry::$($profile.PSChildName)\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
    if (Test-Path $keyPath) {
        $props = Get-ItemProperty -Path $keyPath -ErrorAction SilentlyContinue
        $autoUrl  = $props.AutoConfigURL
        $proxySrv = $props.ProxyServer
        $proxyOn  = $props.ProxyEnable
        if ($autoUrl -or ($proxyOn -eq 1)) {
            $suspicious = $false
            # Flag PAC URLs or proxy servers pointing to localhost, RFC1918, or non-HTTPS
            if ($autoUrl -match '127\.0\.0\.1|localhost|http://[^/]*\.(local|internal)') { $suspicious = $true }
            if ($proxySrv -match '127\.0\.0\.1|localhost') { $suspicious = $true }
            $results += [PSCustomObject]@{
                SID           = $profile.PSChildName
                AutoConfigURL = $autoUrl
                ProxyServer   = $proxySrv
                ProxyEnabled  = $proxyOn
                Suspicious    = $suspicious
                Host          = $env:COMPUTERNAME
            }
        }
    }
}

# 3. Check AutoProxy service state and binary path integrity
Write-Host "`n=== WinHttpAutoProxySvc State ===" -ForegroundColor Cyan
$svc = Get-CimInstance Win32_Service -Filter "Name='WinHttpAutoProxySvc'"
$svc | Select-Object Name, State, StartMode, PathName | Format-List

# 4. Export findings
$outPath = "$env:ProgramData\SecurityAudit\ZDI-26-708-ProxyAudit-$(Get-Date -Format 'yyyyMMdd-HHmmss').csv"
New-Item -ItemType Directory -Path (Split-Path $outPath) -Force | Out-Null
$results | Export-Csv -Path $outPath -NoTypeInformation

if ($results | Where-Object { $_.Suspicious }) {
    Write-Host "`n[ALERT] Suspicious proxy configuration detected — investigate before remediation." -ForegroundColor Red
    $results | Where-Object { $_.Suspicious } | Format-List
} else {
    Write-Host "`n[OK] No anomalous proxy configuration found. Results: $outPath" -ForegroundColor Green
}

# 5. Optional: baseline AutoConfigURL values now so drift detection is possible later.
# Do NOT blank proxy settings on production systems without validating dependencies —
# WPAD/PAC is load-bearing in many enterprise environments.

Remediation

There is no patch to deploy. That changes the remediation conversation from "how fast can we patch" to "how do we shrink exposure and increase detection fidelity until a fix ships." In priority order:

  1. Track the advisory and prepare for out-of-band patching. Bookmark the ZDI advisory (http://www.zerodayinitiative.com/advisories/ZDI-26-708/) and monitor Microsoft's Security Update Guide for the CVE assignment. ZDI disclosures typically precede a vendor fix; when the bulletin lands, expect it may arrive outside the normal Patch Tuesday cadence. Pre-stage your deployment rings so you can move within 24–48 hours of release.
  2. Harden the initial-access layer. This bug requires low-privileged code execution first. Every control that raises the bar on initial access directly neutralizes this LPE's value: application control (WDAC/AppLocker) to block unsigned payloads, attack surface reduction rules, Office macro restrictions, and phishing-resistant authentication. You are defending the prerequisite, not the bug.
  3. Deploy the detections above. The Sigma rules, KQL query, and VQL artifact target the observable chain: proxy configuration manipulation, AutoProxy service abuse, and post-elevation process behavior. Tune the legitimate-admin filters to your environment before enabling at high severity.
  4. Baseline and lock proxy configuration. Establish known-good AutoConfigURL/ProxyServer values per OU or endpoint class via GPO, then alert on any deviation. In environments where WPAD is not required, evaluate disabling WPAD resolution entirely — it reduces the attack surface of the entire proxy auto-discovery stack.
  5. Constrain local execution on high-value targets. On servers, jump boxes, and privileged access workstations, no standard user should be executing arbitrary code at all. If an attacker cannot get the low-privileged foothold, this LPE is worthless to them.
  6. Monitor for elevation events. Enable and forward Security Event ID 4672/4688 with command-line auditing and Sysmon (process creation, registry events, process access) so that a successful escalation — regardless of the specific primitive used — generates a reviewable trail.
  7. Brief your IR retainers. If you detect proxy configuration tampering followed by integrity-level transitions on the same host, treat it as a potential zero-day exploitation attempt and escalate. Preserve memory and the user hives before remediation — the unpatched nature of this bug means forensic evidence of exploitation is valuable to the broader community.

When Microsoft ships the fix, verify installation with Get-HotFix against the KB number from the Security Update Guide entry, and keep the detections in place — patch-gap exploitation attempts often continue for weeks after a fix ships, targeting stragglers.

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.