← Back to Feed CACHED · 2026-06-29 11:53:22 · CACHE_KEY CVE-2026-13539
CVE-2026-13539 · CWE-119 · Disclosed 2026-06-29

A vulnerability was identified in Wavlink WL-NU516U1-A M16U1_V240425

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

A hole in a $30 consumer wifi extender that you have to log into first to exploit

CVE-2026-13539 is a CWE-119 memory-corruption flaw in the Wavlink WL-NU516U1-A wireless repeater running firmware M16U1_V240425. The bug sits in the device's web admin CGI surface — the same adm.cgi/nas.cgi/wireless.cgi family that has produced a dozen similar overflow and command-injection CVEs against this product line throughout 2025–2026. Successful exploitation gives the attacker code execution on the embedded Linux that runs the repeater, typically as root, but only after authenticating to the admin panel (PR:L).

Vendor scored this HIGH (8.8) off the raw CVSS vector. For a fleet defender that label is misleading. Wavlink is a consumer/SOHO brand — these units do not belong in a managed enterprise. If you have any in your 10k-host estate they are rogue/shadow hardware on an access-layer VLAN, not a tier-0 asset. The CVSS vector treats *any* network-reachable RCE as severe, but the *role* this device plays caps the blast radius at the device itself plus whatever broadcast-domain mischief follows from owning one consumer access point.

"Buffer overflow in a SOHO Wavlink repeater that requires an authenticated session — enterprise exposure is near zero, blast radius ends at the device."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Reach the device's web admin

Attacker must have IP reachability to the Wavlink's HTTP(S) management interface on port 80/443. By default this listens on the LAN-side bridge, not the WAN. In an enterprise context this means the attacker is already on the same broadcast domain or routable internal segment as the rogue device.
Conditions required:
  • Network path to TCP/80 on the repeater
  • Repeater powered on and provisioned
Where this breaks in practice:
  • Wavlink admin UI is not exposed to the internet by default
  • Enterprise NAC and segmentation typically prevent client-to-client management plane reach
Detection/coverage: NetFlow / Zeek HTTP logs to non-corporate appliance MACs; OUI-based asset discovery flags Shenzhen Wavlink MACs.
STEP 02

Authenticate to the admin panel

CVSS vector is PR:L — exploitation requires a valid session. In practice the bar is low: default creds (admin/admin or vendor-printed sticker password) work on the vast majority of unprovisioned Wavlinks. Researchers in this CVE line (VulDB, OffSeq) typically demonstrate with default creds.
Conditions required:
  • Valid admin credentials or default creds still in place
Where this breaks in practice:
  • Any user who changed the admin password defeats the precondition
  • Brute-force is rate-limited by the device's slow HTTP stack but not by lockout
Detection/coverage: Repeated 401/200 transitions to /cgi-bin/login.cgi from a single source IP.
STEP 03

Send the oversized argument to the vulnerable CGI

Following the public pattern across CVE-2026-2565, -2567, -4861, the attacker POSTs an oversized field (Content-Length header, User1Passwd, wlan_bssid, ftext, etc.) to the targeted CGI handler. The stack frame overflows; with no PIE/ASLR/canaries on MIPS/ARM SOHO firmware, a basic ROP into system() or shellcode is straightforward.
Conditions required:
  • Knowledge of the specific vulnerable handler and field (typically reverse-engineered from firmware blob)
Where this breaks in practice:
  • Firmware variant differences cause offset drift across hardware revisions
Detection/coverage: IDS signatures on abnormal Content-Length or argument sizes to /cgi-bin/*.cgi; vendor scanners (Nessus, Qualys) carry generic Wavlink CGI overflow plugins.
STEP 04

Execute code as root on the device

Wavlink CGIs run as root under lighttpd or goahead. Successful overflow yields root shell on the device. Attacker pivots into a persistent rootkit, DNS hijack, or man-in-the-middle of any wireless client associated with the repeater.
Conditions required:
  • Successful overflow trigger
Where this breaks in practice:
  • No persistence across factory reset; firmware updates wipe implants
  • Device cannot reach beyond its own LAN segment without further pivot
Detection/coverage: Outbound C2 from the repeater's MAC/IP; DNS queries from the device to non-vendor infrastructure.
STEP 05

Pivot to wireless clients on the same SSID

Once root on the repeater, the attacker can MITM HTTP, downgrade TLS handshakes via rogue CA injection on unmanaged guest devices, harvest PSK, or scan the upstream network. Impact is bounded by what associates to that AP — usually guest devices and shadow IT, rarely managed corporate endpoints.
Conditions required:
  • Clients actively associated to the repeater's SSID
Where this breaks in practice:
  • Corporate endpoints use 802.1X / WPA3-Enterprise and do not associate with rogue APs
  • Modern OS HSTS preloading defeats HTTP MITM for major SaaS
Detection/coverage: Wireless IDS (Cisco CMX, Aruba WIDS) flags rogue AP advertisement and client roaming anomalies.
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNo known active exploitation for this specific CVE ID. Sibling CVEs in the same product line (CVE-2026-2565, -2567, -4861) have public PoCs but no observed mass exploitation.
Public PoCNot yet published for CVE-2026-13539 specifically; pattern-identical PoCs exist on VulDB and OffSeq Radar for adjacent Wavlink CGI overflows.
EPSSPending (newly disclosed 2026-06-29) — sibling Wavlink overflow CVEs sit at ~0.05–0.15% (sub-1st percentile).
KEV statusNot listed on CISA KEV. No Wavlink consumer-product CVE has ever been added to KEV.
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H — network-reachable, low complexity, low privileges required, no user interaction.
AffectedWavlink WL-NU516U1-A, firmware M16U1_V240425. Likely affects adjacent firmware builds in the same family.
Fixed versionNo vendor patch published at disclosure. Wavlink's firmware portal (wavlink.com/en_us/firmware.html) historically lags CVE disclosure by months or never.
Exposure dataShodan and Censys typically return <5,000 internet-exposed Wavlink admin panels globally. Enterprise installed base is effectively zero outside of shadow IT.
Disclosure date2026-06-29 (today).
ReporterDisclosed via the VulDB CNA pipeline, consistent with the prolific researcher cluster reporting Wavlink firmware bugs throughout 2025–2026.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to LOW (3.5/10)

The single most decisive factor is enterprise installed-base share approaching zero — Wavlink WL-NU516U1-A is a consumer USB wireless repeater that has no legitimate role in a managed fleet. Even where it appears as shadow IT, blast radius is bounded by the device and any clients foolish enough to associate with it; no high-value-role multiplier applies.

HIGH Enterprise non-relevance of this product line
MEDIUM Exact exploitation primitive (CWE-119 wording is generic; the specific CGI handler is not yet public)
HIGH Friction audit — PR:L plus consumer-grade form factor

Why this verdict

  • Friction adjustment — authentication required: PR:L means the attacker needs a valid admin session. Default-cred reuse is plausible but not free; a single password change defeats the chain.
  • Friction adjustment — exposure population: Wavlink consumer hardware does not appear in managed enterprise CMDBs. Shodan/Censys data caps internet-exposed instances in the low thousands globally.
  • Role multiplier — none triggered: The affected component is not on the high-value-role catalog (not a hypervisor, IdP, PAM, CA, backup, EDR, network edge, or DC role). Worst plausible high-value-role outcome is device → same-SSID client MITM, which is host-scope, not fleet-scope. No floor elevation applies.
  • No KEV, no in-the-wild signal, EPSS likely <1% — vendor HIGH 8.8 is driven by raw CVSS math; threat reality is a quiet consumer-IoT bug.

Why not higher?

The vendor's HIGH is mathematically defensible from the CVSS vector but ignores deployment reality. To justify MEDIUM or above the bug would need either a high-value-role deployment context (it has none), active exploitation (none observed), or unauthenticated reach (it is PR:L).

Why not lower?

Not IGNORE because shadow-IT Wavlinks do appear in enterprise networks (guest-room repeaters, contractor-brought hardware, lab benches) and a rooted access point is a useful pivot. Asset discovery teams still need to find and remove them; that work is more than zero.

05 · Compensating Control

What to do — in priority order.

  1. Inventory for Wavlink hardware across all VLANs — Run a one-pass discovery against the 001583, 0c9c92, 14a7b4, b0e98b and related Wavlink/Winstars OUIs across every managed switch. For LOW verdicts there is no noisgate mitigation SLA — fold this into the 365-day remediation window, but make it a named ticket so it does not vanish.
  2. Block management-plane reach to discovered units — ACL or private-VLAN-isolate the repeater so only a designated admin host can reach TCP/80,443 on it. Removes Step 1 of the attack path entirely.
  3. Force credential rotation on any unit you keep — If business owners insist on retaining a Wavlink, rotate off the default admin password. PR:L becomes meaningful friction the moment defaults are gone.
  4. Replace with managed AP hardware — The right long-term answer for a 10k-host shop is to not have consumer repeaters at all. Issue a corporate-supported alternative as part of the 365-day remediation cycle (noisgate remediation SLA).
What doesn't work
  • Waiting for a vendor patch — Wavlink's firmware release cadence for this product line is unreliable; historical CVEs in the same family have gone unpatched for 12+ months.
  • WAF / IPS in front of the device — enterprise WAFs sit at the perimeter, not in front of a guest-VLAN repeater. The attacker is already inside that segment.
  • EDR on endpoints — the vulnerable code runs on the embedded Linux of the repeater, not on any host you can install an agent on.
06 · Verification

Crowdsourced verification payload.

Run from an auditor workstation on the same L2/L3 segment as suspected Wavlink units. Provide the target IP as $1. Requires only standard curl and shell; no privileges on the target. Example: ./check_wavlink.sh 192.168.1.1. Output: VULNERABLE, PATCHED, or UNKNOWN.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# noisgate verifier — CVE-2026-13539 Wavlink WL-NU516U1-A buffer overflow
# Usage: ./check_wavlink.sh <target-ip>
# Exit codes: 0 PATCHED/not-affected, 1 VULNERABLE, 2 UNKNOWN
set -u
TARGET="${1:-}"
if [[ -z "$TARGET" ]]; then
  echo "usage: $0 <target-ip>" >&2
  exit 2
fi

UA='noisgate-verifier/1.0'
VULN_FW='M16U1_V240425'

# 1. Confirm this is actually a Wavlink admin panel
BANNER=$(curl -sk --max-time 5 -A "$UA" "http://${TARGET}/login.shtml" 2>/dev/null)
if ! echo "$BANNER" | grep -qiE 'wavlink|wl-nu516'; then
  echo "UNKNOWN: $TARGET does not present a Wavlink admin panel"
  exit 2
fi

# 2. Pull firmware/model strings from sysinfo endpoints used by this family
SYS=$(curl -sk --max-time 5 -A "$UA" "http://${TARGET}/cgi-bin/ExportSettings.sh" 2>/dev/null)
SYS+=$(curl -sk --max-time 5 -A "$UA" "http://${TARGET}/sysinit.shtml" 2>/dev/null)

MODEL=$(echo "$SYS" | grep -oE 'WL-NU516U1[-A-Z0-9]*' | head -1)
FW=$(echo "$SYS" | grep -oE 'M16U1_V[0-9]+' | head -1)

if [[ -z "$MODEL" && -z "$FW" ]]; then
  echo "UNKNOWN: could not extract model/firmware from $TARGET"
  exit 2
fi

echo "detected model=${MODEL:-?} firmware=${FW:-?}"

# 3. Compare
if [[ "$FW" == "$VULN_FW" ]]; then
  echo "VULNERABLE: $TARGET runs $FW (CVE-2026-13539)"
  exit 1
fi

if [[ "$FW" =~ ^M16U1_V([0-9]+)$ ]]; then
  BUILD="${BASH_REMATCH[1]}"
  if (( BUILD <= 240425 )); then
    echo "VULNERABLE: $TARGET runs $FW (<= 240425, CVE-2026-13539)"
    exit 1
  fi
  echo "PATCHED: $TARGET runs $FW (newer than 240425)"
  exit 0
fi

echo "UNKNOWN: firmware string '$FW' did not match expected pattern"
exit 2
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: do not mobilize a patch sprint for this. Per the noisgate mitigation SLA for LOW (none — no mitigation deadline applies), this drops straight into the noisgate remediation SLA 365-day window. Open one ticket: run an OUI-based asset sweep for Wavlink hardware across all managed segments, ACL-isolate or remove anything you find, and add the Wavlink product family to your unauthorized-hardware list so future units get flagged at the switch port. If you have zero Wavlinks in inventory — which is the expected answer for a managed 10k-host fleet — document the negative finding and close the CVE ticket.

Sources

  1. CVE Details — Wavlink WL-NU516U1 firmware M16U1_V240425
  2. VulDB — CVE-2026-8189 Wavlink adm.cgi wzdrepeater (sibling)
  3. VulDB — CVE-2026-4861 Wavlink nas.cgi ftext stack overflow (sibling)
  4. OffSeq Radar — CVE-2026-2565 Wavlink WL-NU516U1 stack overflow (sibling)
  5. OffSeq Radar — CVE-2026-2567 Wavlink WL-NU516U1 stack overflow (sibling)
  6. CVEFeed — CVE-2025-9149 Wavlink wireless.cgi command injection (related family)
  7. Wavlink firmware download portal
  8. Firmware mirror — WAVLINK-NU516-V240425
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.