← Back to Feed CACHED · 2026-10-09 07:48:15 · CACHE_KEY CVE-2026-6837
CVE-2026-6837 · CWE-78 · Disclosed 2026-08-04

Zyxel AP Firmware export-cgi Post-Authentication OS Command Injection

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

Handing the janitor who already has every key a lockpicking set — impressive, but he was already inside

CVE-2026-6837 is a post-authentication OS command injection in the export-cgi handler on 18 Zyxel wireless access point models (NWA50AX through WAX655E) running firmware ≤ 7.10. The flaw sits in the PKCS#12 certificate export workflow: the password parameter is concatenated into a shell command without neutralising metacharacters like quotation marks. An attacker who already holds administrator-level credentials to the AP's web management interface can inject arbitrary shell commands that execute as root. Zyxel patched all 18 models in the 7.12 firmware train, released 2026-08-04.

The vendor's HIGH / 7.2 score is *technically correct* under CVSS 3.1 accounting (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H), but it overweights the real-world risk for enterprise teams. The PR:H gate means you need a valid administrator session — not just any login, but the top privilege tier. In a well-run enterprise, AP management interfaces live on an isolated management VLAN, local web-UI access may be disabled in favour of Zyxel Nebula or NCC, and default credentials (admin/1234) should have been rotated at commissioning. The combination of these friction factors means the population of attackers who can actually reach *and authenticate to* the export-cgi endpoint is vanishingly small compared to a typical HIGH-rated vulnerability. There is no evidence of in-the-wild exploitation, the EPSS probability is ~1.5 % (≈65th percentile), and CISA has not added it to the KEV catalog. Downgrading to MEDIUM better reflects the operational reality for a fleet of centrally managed APs.

"Admin-only command injection on a Wi-Fi AP is a post-compromise amplifier, not an initial access vector."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Obtain administrator credentials

The attacker acquires valid admin-level credentials for the AP's local web UI. Vectors include credential reuse from a breached asset management database, brute-forcing the default admin/1234 pair if it was never changed, or harvesting credentials via a compromised Nebula/NCC management plane. No public tool automates this step specifically for Zyxel APs, though generic HTTP brute-forcers (Hydra, Burp Intruder) work against the login endpoint.
Conditions required:
  • Valid administrator credentials for the target AP
  • Knowledge of the AP management IP or hostname
Where this breaks in practice:
  • Enterprise deployments should have rotated the default credentials at provisioning
  • Credential storage in Nebula/NCC is separate from local AP web-UI credentials in many configurations
  • MFA is not available on Zyxel AP local web UIs, but network-layer access controls (ACLs, jump-box requirement) compensate
Detection/coverage: Failed login attempts generate syslog events; centrally managed APs forward these to the NCC dashboard. No dedicated scanner signature for credential guessing on Zyxel APs, but generic brute-force detection rules trigger.
STEP 02

Reach the AP management interface

The AP's HTTPS management interface (typically port 443 on the management VLAN IP) must be reachable from the attacker's position. In enterprise networks, this means the attacker either has a foothold on the management VLAN or has pivoted through a misconfigured inter-VLAN route. Internet-facing exposure of Zyxel AP management interfaces is rare; these devices are designed to sit behind a gateway.
Conditions required:
  • Network-layer access to the AP's management interface (management VLAN or equivalent)
Where this breaks in practice:
  • Management VLANs are typically ACL-restricted in enterprise deployments
  • Zyxel APs behind Nebula Cloud may have local web-UI disabled entirely
  • Shodan/Censys show minimal internet-facing exposure of Zyxel AP management ports
Detection/coverage: Network monitoring / NAC solutions detect unexpected connections to management VLAN subnets. NGFW rules should block cross-VLAN access to AP management ports.
STEP 03

Navigate to the PKCS#12 certificate export function

Once authenticated, the attacker accesses the export-cgi endpoint that handles PKCS#12 certificate exports. This is a standard administrative feature — no special configuration enables or disables it. The endpoint accepts a password parameter used to encrypt the exported certificate bundle.
Conditions required:
  • Active authenticated administrator session on the AP web UI
Where this breaks in practice:
  • None — this is a default feature accessible to any admin session
Detection/coverage: Web request logs on the AP will show the POST to export-cgi, but few organisations forward AP web-UI access logs to SIEM.
STEP 04

Inject OS commands via the password parameter

The attacker crafts a malicious password value containing shell metacharacters (e.g., embedded quotation marks followed by command separators like ; or $()) that break out of the intended openssl pkcs12 command string. The export-cgi binary passes this unsanitised input to the system shell. The PoC developed by researcher Mina Nageh Salama demonstrated this on emulated AArch64 firmware using qemu-aarch64-static. No weaponised public exploit or Metasploit module exists as of October 2026.
Conditions required:
  • Knowledge of the injection syntax (publicly described in the advisory and researcher write-up)
Where this breaks in practice:
  • No turnkey exploit tool — attacker must craft the payload manually or adapt the researcher's PoC
  • The PoC was validated against emulated firmware; minor differences may exist on physical hardware
Detection/coverage: No Nuclei template or Nessus plugin specifically tests for this injection. WAF/IPS signatures for generic OS command injection in HTTP POST bodies may catch obvious payloads.
STEP 05

Achieve root-level command execution on the AP

The injected commands execute as root because the CGI process runs with elevated privileges. The attacker now has full OS control of the access point: they can install a persistent backdoor, intercept wireless client traffic, exfiltrate credentials from the AP's configuration (PSKs, RADIUS shared secrets), or pivot into adjacent network segments. However, blast radius is limited to the AP itself and its directly connected wireless clients — there is no scope change (S:U).
Conditions required:
  • Successful command injection in step 4
Where this breaks in practice:
  • AP hardware is resource-constrained (ARM SoC, limited storage) — staging complex implants is harder than on a server
  • Firmware updates or factory resets wipe persistence
  • Network segmentation limits lateral movement from the AP
Detection/coverage: Anomalous outbound connections from the AP's management IP may trigger NDR alerts. File-integrity monitoring is not standard on AP firmware, but unexpected processes or listening ports would be visible via SNMP or Nebula health checks.
03 · Compensating Control

1
MEDIUM 5.5→LOW 3.0
SEVERITY REDUCED
Restrict AP management interface access to a dedicated management VLAN with ACLs — Block all access to AP management ports (443, 80, 22) from non-management subnets. This breaks attack-path step 2 entirely — even with valid credentials, the attacker cannot reach the management interface from a compromised workstation or server VLAN. No mitigation SLA applies for MEDIUM — go straight to the 365-day remediation window for patching, but implement this network control as standard hygiene.
2
MEDIUM 5.5→LOW 3.5
SEVERITY REDUCED
Rotate all AP local admin credentials away from defaults — Change the default admin/1234 credentials on every AP to unique, strong passwords stored in a PAM or secrets vault. This hardens attack-path step 1 and eliminates the most likely credential-acquisition vector. If using Nebula/NCC for centralized management, ensure local web-UI passwords are distinct from cloud management credentials. Apply within the 365-day remediation window.
3
MEDIUM 5.5→IGNORE 0.0
SEVERITY REDUCED
Disable local web-UI on Nebula/NCC-managed APs — If your APs are managed via Zyxel Nebula or NCC, disable the local web management interface entirely via the cloud management policy. This eliminates the entire attack surface — the export-cgi endpoint becomes unreachable. This is a zero-cost configuration change.
4
MEDIUM 5.5→IGNORE 0.0
SEVERITY REDUCED
Update firmware to 7.12 across all 18 affected AP models — Apply the vendor patch (firmware 7.12 train) to eliminate the vulnerability at its root. For WAX650S: 7.12(ABRM.0)C0. Schedule within the noisgate remediation SLA of 365 days for MEDIUM severity. Test on a pilot group of APs first, as firmware updates require AP reboots and brief wireless service interruption.
What doesn't work
  • WAF/reverse proxy in front of the AP — AP management interfaces are not typically fronted by a WAF; deploying one adds complexity without meaningful coverage since the injection is in a POST parameter that a generic WAF may not inspect in the PKCS#12 export context.
  • Wireless client isolation / WLAN segmentation — This protects wireless clients from each other but does not restrict access to the AP's own management interface, which is on a separate IP/VLAN.
  • Disabling certificate features — The export-cgi endpoint cannot be selectively disabled without firmware modification; it ships as part of the base web-UI.
04 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNo confirmed exploitation. Not listed in CISA KEV. No GreyNoise or Shadowserver tags observed. No threat-intel reports link this CVE to botnet or APT activity as of October 2026.
Proof-of-concept availabilityResearcher Mina Nageh Salama (GitHub) developed a PoC on emulated AArch64 firmware using qemu-aarch64-static. Write-up referenced on Exploit Intel and KSEC Forum. No Metasploit module, no Nuclei template, no ExploitDB entry. Not indexed on pocindex.io.
EPSS probability / percentile~1.5 % probability of exploitation in the next 30 days, approximately 65th percentile. Low-to-moderate signal — consistent with a post-auth flaw that has no weaponised tooling.
CISA KEV statusNot listed. No due date assigned. No federal mandate to patch on an accelerated timeline.
CVSS vector interpretationCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H — Network-reachable, low complexity, but high privileges required. Scope unchanged means impact is confined to the vulnerable AP. The PR:H gate is the dominant friction factor.
Affected version ranges18 Zyxel AP models: NWA50AX, NWA50AX PRO, NWA55AXE, NWA55AX PRO, NWA55AX PTP, NWA90AX, NWA90AX PRO, NWA110AX, NWA210AX, NWA220AX-6E, WAX300H, WAX510D, WAX610D, WAX620D-6E, WAX630S, WAX640S-6E, WAX650S, WAX655E. All firmware through 7.10(model-specific build)C0.
Fixed versionsFirmware 7.12 train across all 18 models. WAX650S specifically: 7.12(ABRM.0)C0. Released 2026-08-04.
Exposure dataZyxel AP management interfaces are overwhelmingly internal-only. Shodan/Censys show minimal internet-facing exposure of Zyxel WAX/NWA management ports. These are indoor enterprise APs, not edge appliances. Default credentials (admin/1234) are the larger concern for unmanaged deployments.
Disclosure timelineDisclosed 2026-08-04 via Zyxel security advisory. NVD published same day.
Reporting researcherMina Nageh Salama — independent pentesting researcher focused on embedded device security. GitHub: minanagehsalalma.

Sources.

  1. Zyxel Security Advisory (2026-08-04)
  2. NVD — CVE-2026-6837
  3. CybersecurityNews — Zyxel Patches Command Injection Flaw in 18 APs
  4. SentinelOne Vulnerability Database — CVE-2026-6837
  5. Mina Nageh Salama — Researcher GitHub Profile
  6. Strix.ai — CVE-2026-6837 Analysis
  7. Rewterz Threat Advisory — Zyxel AP Command Injection
  8. RedPacket Security — CVE-2026-6837 Alert
05 · The Call

Final Verdict
↓ DOWNGRADED to MEDIUM (5.5/10)

Why this verdict

  • PR:H gate is dominant friction: The CVSS vector requires *administrator-level* credentials — not just any authenticated user. An attacker who already holds AP admin creds has likely already compromised the management plane or has insider access, making this a post-compromise lateral move rather than an initial access vector. This alone warrants a 1–2 point reduction from the vendor baseline.
  • Management interface isolation: Enterprise APs sit on management VLANs with ACL restrictions. The management web UI is not internet-facing by design. Nebula/NCC-managed deployments may disable the local web UI entirely. The attacker must already be inside the management network segment — implying post-initial-access positioning.
  • No exploitation evidence compounds the friction: Zero KEV listing, no GreyNoise/Shadowserver tags, no botnet adoption, EPSS at ~1.5 % (65th percentile). The PoC exists only in emulated form from the original researcher — no weaponised tooling, no Metasploit module, no Nuclei template.
  • Scope unchanged (S:U): Impact is confined to the AP itself. Root on a Zyxel AP gives traffic interception and pivot potential, but does not directly yield domain compromise, fleet takeover, or supply-chain impact. The blast radius is host-level plus connected wireless clients.
  • Role multiplier: (a) *Low-value role* — lab/test AP, home office: MEDIUM impact, limited blast radius. (b) *Typical role* — enterprise office AP: MEDIUM impact; root access enables wireless traffic interception and pivot, but network segmentation and NAC limit lateral movement. (c) *High-value role evaluation* — APs are not in the canonical high-value role catalog (not identity infrastructure, not hypervisors, not CI/CD, not backup, not network edge firewalls, not SCADA). Even in sensitive locations (executive suites, healthcare), a compromised AP's blast radius is host → connected clients → potential pivot, NOT domain → fleet → supply chain. No deployment role produces a floor-triggering outcome (domain takeover, fleet compromise, mass data egress, supply-chain pivot). The floor rule does not apply.
  • Default credentials are a deployment hygiene issue, not a CVE severity issue: While admin/1234 is concerning, CVSS correctly models the intended auth requirement as PR:H. Organisations that have not changed default AP credentials have a configuration management gap, not a reason to rate this CVE higher.

Why not higher?

This is not HIGH because the admin-auth gate is genuine and meaningful friction: an attacker who can authenticate as AP admin has already achieved a level of access that makes root on the AP an incremental gain, not a transformative one. There is no scope change, no active exploitation, and no weaponised tooling. APs are not canonical high-value targets — compromising one does not cascade to domain, fleet, or supply-chain impact.

Why not lower?

This is not LOW because the vulnerability does deliver root-level OS command execution on a network infrastructure device, the PoC is publicly described and reproducible, and the default-credential problem means some fraction of deployments are more exposed than the PR:H gate would suggest. A compromised AP can intercept all wireless client traffic and leak RADIUS shared secrets or PSKs — real harm in the wrong hands.

06 · Verification

Crowdsourced verification payload.

Run this script from any Linux/macOS host that has network access to the target AP's management interface. Invoke as: bash check_cve_2026_6837.sh 192.168.1.2 admin YourPassword. Requires curl and grep. No elevated privileges needed on the auditor workstation.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2026_6837.sh — Zyxel AP firmware version check for CVE-2026-6837
# Usage: bash check_cve_2026_6837.sh <AP_IP> [username] [password]
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN

set -euo pipefail

AP_IP="${1:?Usage: $0 <AP_IP> [username] [password]}"
USER="${2:-admin}"
PASS="${3:-1234}"
FIXED_MAJOR=7
FIXED_MINOR=12

echo "[*] Checking firmware on Zyxel AP at ${AP_IP}..."

# Attempt to authenticate and retrieve firmware info via the web UI
# Zyxel APs expose firmware version on the dashboard or via CGI endpoints
RESPONSE=$(curl -skL --max-time 15 \
  --cookie-jar /tmp/zyxel_cookie_$$ \
  -d "username=${USER}&password=${PASS}" \
  "https://${AP_IP}/cgi-bin/login" 2>/dev/null || true)

# Try to fetch system info page
SYSINFO=$(curl -skL --max-time 15 \
  --cookie /tmp/zyxel_cookie_$$ \
  "https://${AP_IP}/cgi-bin/system_status" 2>/dev/null || true)

# Clean up cookie
rm -f /tmp/zyxel_cookie_$$

# Extract firmware version string (pattern: V7.10 or V7.12 etc.)
FW_VERSION=$(echo "${SYSINFO}${RESPONSE}" | grep -oP 'V?\d+\.\d+\([A-Z]+\.\d+\)' | head -1)

if [ -z "${FW_VERSION}" ]; then
  # Fallback: try SNMP if curl failed
  if command -v snmpget &>/dev/null; then
    FW_VERSION=$(snmpget -v2c -c public "${AP_IP}" \
      1.3.6.1.4.1.890.1.15.3.1.12.0 2>/dev/null | grep -oP 'V?\d+\.\d+\([A-Z]+\.\d+\)' || true)
  fi
fi

if [ -z "${FW_VERSION}" ]; then
  echo "[!] UNKNOWN — Could not retrieve firmware version from ${AP_IP}."
  echo "    Verify network connectivity, credentials, and that the management UI is enabled."
  exit 2
fi

echo "[*] Detected firmware: ${FW_VERSION}"

# Parse major.minor from version string like 7.10 or 7.12
MAJOR=$(echo "${FW_VERSION}" | grep -oP '\d+\.\d+' | head -1 | cut -d. -f1)
MINOR=$(echo "${FW_VERSION}" | grep -oP '\d+\.\d+' | head -1 | cut -d. -f2)

if [ -z "${MAJOR}" ] || [ -z "${MINOR}" ]; then
  echo "[!] UNKNOWN — Could not parse firmware version numbers."
  exit 2
fi

if [ "${MAJOR}" -gt "${FIXED_MAJOR}" ] || \
   ([ "${MAJOR}" -eq "${FIXED_MAJOR}" ] && [ "${MINOR}" -ge "${FIXED_MINOR}" ]); then
  echo "[+] PATCHED — Firmware ${FW_VERSION} is >= 7.12. CVE-2026-6837 is fixed."
  exit 0
else
  echo "[-] VULNERABLE — Firmware ${FW_VERSION} is < 7.12. CVE-2026-6837 applies."
  echo "    Update to firmware 7.12 or later for your model."
  exit 1
fi