← Back to Feed CACHED · 2026-08-04 12:11:07 · CACHE_KEY CVE-2026-18686
CVE-2026-18686 · CWE-74 · Disclosed 2026-08-04

A vulnerability was detected in GL.iNet GL-MT3000 up to 4.4.5.

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

Someone left the front door of a dollhouse wide open, and the vendor scored it like a bank vault breach

CVE-2026-18686 is an unauthenticated command injection in the nas-web.add_user function within /cgi-bin/glc on the GL.iNet GL-MT3000 (Beryl AX), a pocket-sized Wi-Fi 6 travel router retailing for ~$90. Affected firmware versions span 4.4.0 through 4.4.5. An attacker with network access to the device's management interface can inject shell commands via the NAS user-creation RPC endpoint, achieving root-level code execution with no credentials required. Public exploit code exists on GitHub.

The vendor's CVSS 9.8 is *technically* correct in a vacuum — unauthenticated network-accessible RCE checks every box on the CVSS calculator. But CVSS doesn't ask "is this device actually deployed in your enterprise?" The GL-MT3000 is a consumer travel router. It does not appear in enterprise asset inventories, is not a managed endpoint, and is not a network edge appliance in any meaningful sense. The management interface listens on the LAN side by default and is not WAN-exposed. For an enterprise security team managing 10,000 hosts, this CVE applies to approximately zero of them. The 9.8 is a vendor score divorced from operational reality.

"Consumer travel router bug with a scary CVSS but near-zero enterprise footprint."
02 · The Attack Path

3 steps from start to impact.

STEP 01

Network access to management interface

The attacker must reach the GL-MT3000's /cgi-bin/glc endpoint, which hosts the device's RPC API. By default this listens on the LAN interface (192.168.8.1). On a travel router, this means the attacker is either on the same hotel/coffee-shop Wi-Fi segment the router is bridging, or on the router's own LAN.
Conditions required:
  • Layer 3 reachability to the GL-MT3000 management IP
  • Device is powered on and running firmware 4.4.0–4.4.5
Where this breaks in practice:
  • Management interface is LAN-only by default; not exposed to WAN
  • Device is a consumer travel router rarely present on enterprise networks
  • No enterprise MDM or asset management covers these devices
STEP 02

Send crafted RPC call to nas-web.add_user

The attacker sends a POST request to /cgi-bin/glc invoking the nas-web.add_user RPC method. The username or password parameter is not sanitized and is passed directly to a shell command. No authentication token or session cookie is required. The public PoC on GitHub demonstrates this with a single curl command.
Conditions required:
  • No authentication required
  • NAS (nas-web) service component must be present in firmware
Where this breaks in practice:
  • NAS functionality is an optional feature; not all users enable external storage
  • Exploit requires knowing the exact RPC method name and parameter format (public PoC removes this barrier)
Detection/coverage: WAF or IDS rules for command injection patterns in POST bodies to /cgi-bin/glc could flag this, but travel routers typically sit behind no such controls.
STEP 03

Achieve root shell on travel router

Successful injection yields command execution as root on the embedded OpenWrt-based OS. The attacker can install persistence, pivot to connected clients, intercept traffic, or modify DNS settings to redirect all client traffic through an attacker-controlled resolver.
Conditions required:
  • Successful command injection from step 2
Where this breaks in practice:
  • Blast radius is limited to a single travel router and its directly connected clients
  • No domain trust, no AD integration, no credential stores on the device
  • Compromise of this device does not grant access to enterprise infrastructure
03 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNo evidence of active exploitation in the wild. Not listed on CISA KEV.
Proof of ConceptPublic. Exploit code available on GitHub. Single-request PoC using curl against /cgi-bin/glc.
EPSS ScoreNot yet scored — CVE disclosed 2026-08-04, too new for EPSS model ingestion.
KEV StatusNot listed as of 2026-08-04.
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — 9.8. CVSS 4.0 base: 9.3. All metrics maxed except Scope, which is Unchanged (single device).
Affected VersionsGL.iNet GL-MT3000 firmware 4.4.0 through 4.4.5.
Fixed VersionNo official patch for this specific CVE. Related CVEs (CVE-2026-12186, CVE-2026-12187) fixed in firmware 4.7. Upgrade to 4.7+ likely resolves this as well.
Exposure DataNo Shodan/Censys/GreyNoise data specific to GL-MT3000 management interfaces. Device is a consumer travel router with negligible internet-facing exposure.
Disclosure Date2026-08-04. Vendor was contacted prior to disclosure and confirmed the vulnerability.
ReporterNot attributed to a named researcher. Disclosed via VulDB-style coordinated process.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to LOW (3.0/10)

The single most decisive factor is the near-zero enterprise installed base — the GL-MT3000 is a $90 consumer travel router that does not appear in enterprise asset inventories or managed device fleets. No high-value deployment role exists for this device, making the vendor's 9.8 score irrelevant to enterprise patch prioritization.

HIGH Vulnerability technical details and exploitability
HIGH Device classification as consumer travel router
MEDIUM Fixed version (inferred from related CVE patches, not confirmed for this CVE)

Why this verdict

  • Enterprise installed base is effectively zero. The GL-MT3000 is a pocket travel router sold on Amazon and Walmart. It is not purchased, deployed, or managed by enterprise IT teams. An enterprise managing 10,000 hosts has zero of these in their CMDB.
  • No high-value role applies. This device is not a network edge appliance (not F5, Palo Alto, Cisco ASA), not identity infrastructure, not a hypervisor, not CI/CD, not backup infrastructure. It occupies no role in the high-value-role catalog. The blast radius of compromise is one travel router and its handful of directly connected Wi-Fi clients.
  • Role multiplier: N/A. The GL-MT3000 is exclusively a consumer/prosumer device. Even in the rare case an employee carries one for travel, it is not domain-joined, does not hold enterprise credentials, and is not in the trust boundary of the corporate network. Compromise yields root on an embedded Linux box with no lateral movement path to enterprise assets.
  • LAN-only management interface by default. The attack surface requires Layer 3 access to the router's LAN IP. This limits the attacker to the same local network segment — a hotel Wi-Fi or coffee shop — not the internet at large.

Why not higher?

Despite the public exploit and unauthenticated RCE, there is no enterprise deployment scenario where this device occupies a security-critical role. The blast radius is a single consumer gadget. Elevating this to MEDIUM or above would misallocate enterprise patching resources toward a device class that doesn't exist in managed fleets.

Why not lower?

A public exploit for unauthenticated RCE exists, and the device *could* appear as shadow IT carried by traveling employees. If an attacker on a shared network (hotel, airport) compromises a travel router, they could intercept the employee's traffic or pivot to the employee's laptop. This residual risk prevents an IGNORE verdict.

05 · Compensating Control

What to do — in priority order.

  1. Inventory and remove GL.iNet devices from corporate use — Query endpoint agents, travel expense reports, and procurement records for GL.iNet purchases. If any are found, replace with enterprise-managed VPN solutions. No noisgate mitigation SLA applies at LOW severity — treat as backlog hygiene.
  2. Block GL.iNet management interfaces on corporate Wi-Fi — If employees connect GL-MT3000 routers to corporate networks as repeaters, NAC policies should block rogue DHCP servers and unknown router MACs (GL.iNet OUI: E4:95:6E, 94:83:C4).
  3. Advise traveling staff to upgrade firmware — If the organization cannot eliminate these devices, advise affected users to upgrade to firmware 4.7+ which resolves related command injection CVEs and likely patches this one.
What doesn't work
  • Enterprise patch management tools (SCCM, Intune, Tanium) — these cannot manage GL.iNet router firmware. The device runs embedded OpenWrt, not a managed OS.
  • Network vulnerability scanners (Nessus, Qualys) — unlikely to have detection plugins for this niche consumer device. Even if they did, the device is not on the corporate network to be scanned.
06 · Verification

Crowdsourced verification payload.

Run this from any machine on the same LAN as the GL-MT3000 (e.g., connected to its Wi-Fi). No special privileges needed. Usage: bash check_glmt3000.sh 192.168.8.1

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_glmt3000.sh — Check GL-MT3000 for CVE-2026-18686 vulnerability
# Usage: bash check_glmt3000.sh <router_ip>
# Exit codes: 0=VULNERABLE, 1=PATCHED, 2=UNKNOWN

set -euo pipefail

ROUTER_IP="${1:-192.168.8.1}"
ENDPOINT="http://${ROUTER_IP}/cgi-bin/api/router/hello"

echo "[*] Checking GL-MT3000 at ${ROUTER_IP}..."

# Step 1: Query the router's API for firmware version
RESPONSE=$(curl -s -m 10 "${ENDPOINT}" 2>/dev/null || true)

if [ -z "$RESPONSE" ]; then
  echo "UNKNOWN — Could not reach device at ${ROUTER_IP}. Is it a GL-MT3000?"
  exit 2
fi

# Extract firmware version from JSON response
FW_VERSION=$(echo "$RESPONSE" | grep -oP '"firmware_version"\s*:\s*"\K[^"]+' 2>/dev/null || true)
MODEL=$(echo "$RESPONSE" | grep -oP '"model"\s*:\s*"\K[^"]+' 2>/dev/null || true)

if [ -z "$FW_VERSION" ]; then
  echo "UNKNOWN — Could not parse firmware version from device response."
  exit 2
fi

echo "[*] Model: ${MODEL:-unknown}"
echo "[*] Firmware: ${FW_VERSION}"

# Step 2: Compare version — vulnerable range is 4.4.0 through 4.4.5
# Fixed in 4.7+
MAJOR=$(echo "$FW_VERSION" | cut -d. -f1)
MINOR=$(echo "$FW_VERSION" | cut -d. -f2)
PATCH=$(echo "$FW_VERSION" | cut -d. -f3)

if [ "$MAJOR" -lt 4 ] 2>/dev/null; then
  echo "UNKNOWN — Firmware version ${FW_VERSION} is below known affected range."
  exit 2
elif [ "$MAJOR" -eq 4 ] && [ "$MINOR" -eq 4 ] && [ "$PATCH" -le 5 ] 2>/dev/null; then
  echo "VULNERABLE — Firmware ${FW_VERSION} is in the affected range (4.4.0–4.4.5)."
  exit 0
elif [ "$MAJOR" -eq 4 ] && [ "$MINOR" -ge 7 ] 2>/dev/null; then
  echo "PATCHED — Firmware ${FW_VERSION} is at or above 4.7 (expected fix version)."
  exit 1
elif [ "$MAJOR" -gt 4 ] 2>/dev/null; then
  echo "PATCHED — Firmware ${FW_VERSION} is above the affected major version."
  exit 1
else
  echo "UNKNOWN — Cannot determine vulnerability status for firmware ${FW_VERSION}."
  exit 2
fi
07 · Bottom Line

If you remember one thing.

TL;DR
For an enterprise team managing 10,000 hosts, this CVE almost certainly affects zero assets in your fleet. The GL-MT3000 is a consumer travel router, not enterprise infrastructure. No noisgate mitigation SLA applies at LOW severity — treat this as backlog hygiene. Your Monday-morning action is a 5-minute check: query procurement and expense systems for any GL.iNet purchases; if none, document the rationale and move on. If you discover any in employee hands, advise them to upgrade firmware to 4.7+ and consider replacing with a managed VPN solution. Per the noisgate remediation SLA for LOW, there is no formal deadline — address opportunistically.

Sources

  1. OffSeq Threat Radar — CVE-2026-18686
  2. THREATINT — CVE-2026-18686
  3. TheHackerWire — CVE-2026-18614 (related GL-MT3000 RCE)
  4. SecurityVulnerability.io — GL.iNet Latest Vulnerabilities
  5. GL.iNet GL-MT3000 Router Documentation
  6. VulDB — CVE-2026-12187 GL-MT3000 command injection
  7. FIRST.org — EPSS
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.