← Back to Feed CACHED · 2026-08-26 02:13:54 · CACHE_KEY CVE-2026-57909
CVE-2026-57909 · CWE-306 · Disclosed 2026-08-17

WatchGuard Agent path traversal allows unauthenticated remote code execution

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

Someone left the master key to every lock in the building taped to the lobby wall

CVE-2026-57909 is a path-traversal flaw (CWE-306 — Missing Authentication for Critical Function) in the WatchGuard Agent, the unified endpoint security agent that underpins WatchGuard EDR, EPP, and EPDR. An unauthenticated attacker on an adjacent network segment can exploit the agent’s inter-host communication service (TCP 33000) to drop an arbitrary executable onto the target host via directory traversal — achieving code execution as SYSTEM (Windows) or root (macOS). Affected versions are Windows Agent < 1.25.13.000 and macOS Agent < 1.17.21.0000. Patches were released August 17–19, 2026.

The vendor’s CRITICAL / 9.4 rating is honest and, if anything, appropriately calibrated. The CVSS 4.0 vector (AV:A) already accounts for the adjacent-network constraint, and the subsequent-system impact metrics (SC:H/SI:H/SA:H) correctly reflect that compromising a security agent on one host hands the attacker a lateral-movement trampoline to every other agent on the same VLAN. Because the WatchGuard Agent runs as SYSTEM on *every* protected endpoint, a single exploitation gives the attacker the highest-privilege foothold on the host and, by extension, the ability to disable endpoint protection fleet-wide. The vendor got this one right.

"Unauthenticated adjacent RCE on a security agent running as SYSTEM on every managed host. Patch now."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Gain adjacent network position

The attacker must be on the same Layer 2 segment (VLAN) as the target WatchGuard Agent. In practice this means they have already compromised one host on the LAN (e.g., via phishing, VPN credential theft, or a rogue device on Wi-Fi). In flat networks this is trivial; in segmented environments it requires a prior pivot.
Conditions required:
  • Adjacent network access (same VLAN/broadcast domain)
  • TCP 33000 reachable from attacker position
Where this breaks in practice:
  • Requires prior initial access in most enterprise deployments
  • Micro-segmentation or host-firewall rules blocking TCP 33000 between workstations would prevent reachability
Detection/coverage: Network IDS rules monitoring for anomalous connections to TCP 33000 between non-server hosts could flag this step.
STEP 02

Send crafted path-traversal payload to agent service

The attacker sends an unauthenticated request to the WatchGuard Agent’s inter-host communication listener on TCP 33000. The request contains a directory-traversal sequence (e.g., ../../../) that escapes the intended staging directory, allowing the attacker to specify an arbitrary write location on the filesystem. No credentials or tokens are required (CWE-306).
Conditions required:
  • No authentication token or session needed
  • Knowledge of the path-traversal payload structure
Where this breaks in practice:
  • No public PoC or exploit code has been observed as of August 2026
  • Payload structure would need to be reverse-engineered from the patch diff or agent binary
Detection/coverage: Application-layer logging of the WatchGuard Agent service may record the traversal attempt, but default logging levels are unlikely to capture it. EDR telemetry from *another* product could flag the file-write.
STEP 03

Drop malicious executable to startup/service directory

The traversal allows the attacker to write an arbitrary executable to a location that will be automatically executed — e.g., a Windows service binary path, a scheduled-task directory, or an agent plugin folder. Because the WatchGuard Agent runs as SYSTEM, the written file inherits that execution context on next trigger.
Conditions required:
  • Writable target path that leads to automatic execution
  • Agent service running as SYSTEM/root
Where this breaks in practice:
  • Windows Defender or a secondary AV may quarantine the dropped binary if it matches known signatures
  • Application whitelisting (AppLocker/WDAC) would block execution of unsigned binaries in protected paths
Detection/coverage: File-integrity monitoring (FIM) on agent installation directories would detect the new file. Sysmon Event ID 11 (FileCreate) in monitored paths is a reliable signal.
STEP 04

Achieve SYSTEM-level code execution

The dropped executable runs as SYSTEM on the target host when the service restarts or the scheduled trigger fires. The attacker now has full control of the endpoint, can disable the WatchGuard Agent itself (blinding the SOC), dump credentials, and pivot laterally to other hosts running the same vulnerable agent on TCP 33000.
Conditions required:
  • Execution trigger fires (service restart, scheduled task, agent self-update cycle)
Where this breaks in practice:
  • If the agent does not auto-restart or the trigger window is long, there may be a delay before execution
  • Credential-guard and LSA protections reduce the value of post-exploitation credential harvesting
Detection/coverage: EDR (if a second product is present) would detect SYSTEM-level process creation from an unexpected binary. Windows Event 7045 (new service installed) is a high-fidelity signal.
STEP 05

Lateral movement to fleet via agent-to-agent exploitation

From the compromised host, the attacker repeats steps 2–4 against every other WatchGuard Agent on the VLAN, achieving fleet-scale compromise. Because the agent itself is the attack surface and it runs on every managed endpoint, this is effectively a wormable chain within the broadcast domain. The attacker can disable endpoint protection on each host as they go.
Conditions required:
  • Other hosts on the same VLAN running vulnerable WatchGuard Agent
  • TCP 33000 open between endpoints
Where this breaks in practice:
  • Network segmentation (micro-segmentation, zero-trust) limits the blast radius to a single VLAN
  • Patched agents are immune, so partial patch deployment shrinks the target pool
Detection/coverage: Rapid sequential connections to TCP 33000 across many hosts from a single source should trigger network anomaly detection. SIEM correlation of multiple agents going offline simultaneously is a strong signal.
03 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNo known exploitation as of 2026-08-26. Not listed on CISA KEV. No campaigns attributed.
Proof-of-ConceptNo public PoC found on GitHub, Exploit-DB, or security research channels. Exploitation would require reverse-engineering the agent protocol on TCP 33000.
EPSS ScoreNot yet scored — CVE is less than 10 days old (disclosed ~Aug 17–19, 2026). EPSS data not yet populated by FIRST.
KEV StatusNot listed on CISA Known Exploited Vulnerabilities catalog as of 2026-08-26.
CVSS VectorCVSS:4.0/AV:A/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H — Adjacent network, no auth, no user interaction, full impact including subsequent systems. Vendor score: 9.4 CRITICAL.
Affected VersionsWindows Agent < 1.25.13.000; macOS Agent < 1.17.21.0000. All prior versions are vulnerable.
Fixed VersionsWindows Agent 1.25.13.000 (released 2026-08-19); macOS Agent 1.17.21.0000 (released 2026-08-17). Updates delivered via WatchGuard Cloud console.
Exposure / Installed Base~9,682 organizations use WatchGuard Endpoint Security per 6sense market data. WatchGuard holds ~7.8% endpoint security market share. Agent listens on TCP 33000 — not internet-exposed by design, but reachable on every managed LAN segment.
Disclosure Date2026-08-17 (macOS fix) / 2026-08-19 (Windows fix). Advisory: WGSA-2026-00012.
ReporterNot publicly attributed. Discovered internally or via coordinated disclosure to WatchGuard PSIRT.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to CRITICAL (9.2/10)

The single most decisive factor is role multiplier — the affected component is a security agent running as SYSTEM/root on every protected endpoint, making compromise equivalent to fleet-wide SYSTEM access and EDR blindness. While AV:A constrains initial reachability to adjacent-network attackers, the agent-to-agent wormability within a VLAN and the total loss of endpoint visibility make this a textbook CRITICAL for any organization whose detection stack depends on WatchGuard.

HIGH Vulnerability existence and severity assessment
MEDIUM Exact exploitation mechanics (no public PoC to validate)
HIGH Blast radius and role-multiplier analysis

Why this verdict

  • No authentication required (CWE-306): The agent’s TCP 33000 listener accepts unauthenticated requests, eliminating the most common friction point in RCE chains. Any host on the VLAN can exploit any other host.
  • Role multiplier — security agent = SYSTEM on every host: The WatchGuard Agent is not a peripheral service; it IS the endpoint protection platform. 100% of installs occupy the high-value ‘kernel-mode security agent’ role. Compromise means SYSTEM-level code execution AND the ability to disable the defender’s own detection tool. The blast radius is fleet-scale within a network segment.
  • Agent-to-agent wormability: Because every managed endpoint runs the same vulnerable service on the same port, a single compromised host can chain exploitation across the entire VLAN without additional tooling. The subsequent-system CVSS metrics (SC:H/SI:H/SA:H) correctly reflect this.
  • AV:A is real but insufficient to downgrade: Adjacent-network access is a prerequisite, meaning the attacker needs prior initial access. However, in a post-compromise scenario (which is the standard threat model for lateral movement), every host on the VLAN is reachable. This friction is already priced into the vendor’s 9.4 score.

Why not higher?

The vendor’s 9.4 is already near-ceiling for a CVSS 4.0 AV:A vector. A 10.0 would require AV:N (internet-facing) with zero friction, which this is not. The slight reduction to 9.2 reflects the absence of any known exploitation, public PoC, or KEV listing, meaning weaponization is currently theoretical rather than confirmed.

Why not lower?

Downgrading below CRITICAL would require ignoring the hard floor rule: the affected component is canonically a high-value-role component (security agent running as SYSTEM on every managed endpoint). The chain requires no authentication, no user interaction, and low complexity. The blast radius is not ‘one host’ — it’s ‘every host on the VLAN running the agent,’ with the added impact of blinding the organization’s endpoint detection capability. AV:A alone is insufficient to break the CRITICAL floor for a security agent.

05 · Compensating Control

What to do — in priority order.

  1. Block TCP 33000 between workstations via host firewall or micro-segmentation — The WatchGuard Agent uses TCP 33000 for inter-host communication. Restricting this port to only necessary management traffic (agent-to-cloud, agent-to-Firebox) eliminates the adjacent-network attack path. Deploy within 3 days per the noisgate mitigation SLA for CRITICAL findings.
  2. Push the patched agent version via WatchGuard Cloud immediately — Windows Agent 1.25.13.000 and macOS Agent 1.17.21.0000 resolve the vulnerability. Use the WatchGuard Cloud console to force-push the update to all managed endpoints. Prioritize VLANs with flat networking or high-value assets (DCs, financial systems). Target 100% coverage within 3 days.
  3. Deploy network-level detection for anomalous TCP 33000 traffic patterns — Create IDS/IPS signatures or SIEM correlation rules that alert on: (1) rapid sequential TCP 33000 connections from a single source to multiple destinations, (2) any TCP 33000 connection from a non-agent source, (3) multiple WatchGuard Agents going offline simultaneously. Deploy within 3 days.
  4. Enable application whitelisting on critical hosts — AppLocker or WDAC policies that restrict execution to signed binaries in approved paths will block the dropped executable even if the path traversal succeeds. This is a defense-in-depth measure that limits the blast radius on high-value hosts like domain controllers and database servers.
  5. Verify with a secondary EDR if available — If you run a second endpoint detection tool (e.g., CrowdStrike, Defender for Endpoint), ensure it is monitoring for SYSTEM-level process creation from unexpected paths and for file writes to WatchGuard Agent directories. This provides detection continuity if the WatchGuard Agent itself is compromised.
What doesn't work
  • Network perimeter firewalls alone — TCP 33000 is internal traffic between endpoints on the LAN. Your perimeter firewall never sees it. You need host-level or micro-segmentation controls.
  • Rotating WatchGuard Cloud API keys — The vulnerability is in the local agent’s TCP listener, not in the cloud management API. Re-keying cloud credentials does not affect the attack path.
  • Disabling the WatchGuard Agent service — This would mitigate the vulnerability but also removes all endpoint protection, creating a worse security posture than the vulnerability itself.
06 · Verification

Crowdsourced verification payload.

Run this script on each Windows endpoint where the WatchGuard Agent is installed. Execute in an elevated PowerShell session (Run as Administrator). Example: powershell -ExecutionPolicy Bypass -File .\Check-CVE-2026-57909.ps1. No external dependencies required. For macOS, check the agent version via defaults read /Library/WatchGuard/com.watchguard.agent Version against 1.17.21.0000.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
# Check-CVE-2026-57909.ps1
# Checks whether the installed WatchGuard Agent is vulnerable to CVE-2026-57909
# Run as Administrator on Windows endpoints
# Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN

$ErrorActionPreference = 'Stop'
$fixedVersion = [Version]'1.25.13.0'

try {
    # Check if WatchGuard Agent service exists
    $svc = Get-Service -Name 'WatchGuard*Agent*' -ErrorAction SilentlyContinue
    if (-not $svc) {
        $svc = Get-Service -Name 'WGAgent*' -ErrorAction SilentlyContinue
    }
    if (-not $svc) {
        Write-Host 'UNKNOWN - WatchGuard Agent service not found on this host.'
        exit 2
    }

    # Locate agent executable
    $agentPaths = @(
        "$env:ProgramFiles\WatchGuard\WatchGuard Agent\WatchGuardAgent.exe",
        "$env:ProgramFiles(x86)\WatchGuard\WatchGuard Agent\WatchGuardAgent.exe",
        "$env:ProgramFiles\WatchGuard\Endpoint Agent\WatchGuardAgent.exe"
    )

    $agentExe = $null
    foreach ($p in $agentPaths) {
        if (Test-Path $p) {
            $agentExe = $p
            break
        }
    }

    if (-not $agentExe) {
        # Fallback: search registry for install path
        $regPaths = @(
            'HKLM:\SOFTWARE\WatchGuard\WatchGuard Agent',
            'HKLM:\SOFTWARE\WOW6432Node\WatchGuard\WatchGuard Agent'
        )
        foreach ($rp in $regPaths) {
            if (Test-Path $rp) {
                $installDir = (Get-ItemProperty -Path $rp -ErrorAction SilentlyContinue).InstallDir
                if ($installDir -and (Test-Path "$installDir\WatchGuardAgent.exe")) {
                    $agentExe = "$installDir\WatchGuardAgent.exe"
                    break
                }
            }
        }
    }

    if (-not $agentExe) {
        Write-Host 'UNKNOWN - WatchGuard Agent executable not found. Service exists but binary path could not be determined.'
        exit 2
    }

    $fileInfo = Get-Item $agentExe
    $installedVersion = [Version]$fileInfo.VersionInfo.FileVersion

    Write-Host "Installed WatchGuard Agent version: $installedVersion"
    Write-Host "Fixed version: $fixedVersion"

    # Also check if TCP 33000 is listening
    $listener = Get-NetTCPConnection -LocalPort 33000 -State Listen -ErrorAction SilentlyContinue
    if ($listener) {
        Write-Host 'TCP 33000 is LISTENING (attack surface is active).'
    } else {
        Write-Host 'TCP 33000 is NOT listening (attack surface may be inactive).'
    }

    if ($installedVersion -ge $fixedVersion) {
        Write-Host 'PATCHED - WatchGuard Agent is at or above the fixed version (1.25.13.000).'
        exit 0
    } else {
        Write-Host 'VULNERABLE - WatchGuard Agent is below the fixed version. Update to 1.25.13.000 immediately.'
        exit 1
    }
} catch {
    Write-Host "UNKNOWN - Error during check: $($_.Exception.Message)"
    exit 2
}
07 · Bottom Line

If you remember one thing.

TL;DR
This is a legitimate CRITICAL finding on your WatchGuard-managed fleet. The WatchGuard Agent runs as SYSTEM on every endpoint it protects, and this bug lets an unauthenticated attacker on your LAN drop and execute arbitrary code through it — with wormable potential across the VLAN. Monday morning action: Under the noisgate mitigation SLA for CRITICAL (3 days), immediately push the patched agent (Windows 1.25.13.000 / macOS 1.17.21.0000) via the WatchGuard Cloud console to all managed endpoints. In parallel, deploy host-firewall rules blocking inter-endpoint TCP 33000 traffic as a compensating control, and stand up SIEM alerts for anomalous TCP 33000 connection patterns. The noisgate remediation SLA is 90 days, but given the blast radius of a security-agent compromise, treat this as a patch-now situation — aim for 100% agent update coverage by end of week. Verify with the provided PowerShell script across your fleet.

Sources

  1. WatchGuard Agent Release Notes
  2. WatchGuard PSIRT Advisory WGSA-2026-00012
  3. WatchGuard Endpoint Security Network Requirements
  4. WatchGuard Communication Ports Documentation
  5. WatchGuard Endpoint Security Market Share - 6sense
  6. WatchGuard Security Advisories Portal
  7. CISA Known Exploited Vulnerabilities Catalog
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.