← Back to Feed CACHED · 2026-10-06 18:40:26 · CACHE_KEY CVE-2026-15410
CVE-2026-15410 · CWE-94 · Disclosed 2026-07-14

SonicWall SMA1000 Appliance Management Console Path-Traversal Code Injection (remove_hotfix)

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

The front door of your office has a lock, but the side window leads straight to the key box — and burglars already drew the map

CVE-2026-15410 is a path-traversal-to-code-execution flaw in the remove_hotfix workflow of SonicWall SMA1000 series appliances (models 6210, 7210, 8200v). An attacker who can reach the internal ctrl-service on localhost port 8188 submits a crafted hotfix=../../../../../tmp/payload.sh parameter to /rollbackConfirm.action, which the appliance executes as root without sanitizing the path. Affected firmware versions include 12.4.3-03245 through 12.4.3-03434 and 12.5.0-02283 through 12.5.0-02800. The fix ships in 12.4.3-03453+ and 12.5.0-02835+.

SonicWall rated this CVE at HIGH 7.2 because, in isolation, it requires administrator-level authentication. That framing is technically correct and operationally dangerous. Every observed real-world exploitation chains CVE-2026-15410 with CVE-2026-15409 (CVSS 10.0), an unauthenticated SSRF in /wsproxy that tunnels directly to the localhost services CVE-2026-15410 needs — eliminating the authentication prerequisite entirely. The combined effect is unauthenticated root RCE on a perimeter VPN appliance. Threat actor UTA0533 exploited this chain as a zero-day from at least June 22, 2026 — three weeks before disclosure — to harvest credentials, steal MFA seeds, pivot to domain controllers, and deploy INC Ransomware. The vendor's 7.2 score describes a vulnerability that has never once been exploited in isolation.

"Chained zero-day gives unauthenticated root on your VPN perimeter; ransomware gangs are already inside."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Unauthenticated WebSocket tunnel via CVE-2026-15409

The attacker sends a WebSocket upgrade request to /wsproxy on the internet-facing SMA1000, spoofing User-Agent: SMA Connect Agent and bmID=-3389. The appliance treats these headers as proof of legitimacy and opens a tunnel to localhost services — CouchDB on port 1050 or ctrl-service on port 8188 — without requiring VPN credentials or MFA. This is the companion CVE-2026-15409 (CVSS 10.0). Tools: custom Python scripts; Rapid7 published PoC leveraging Erlang RPC via hardcoded cookie on port 1050.
Conditions required:
  • Internet-reachable SMA1000 management interface or VPN portal on an unpatched firmware version
  • CVE-2026-15409 is present (same affected version range)
Where this breaks in practice:
  • SMA1000 is internet-facing by design — it IS the VPN gateway; there is no friction here
Detection/coverage: Monitor web server access logs for WebSocket 101 responses to /wsproxy requests with host=0.0.0.0, 127.0.0.1, ::ffff:127.0.0.1, or localhost and port=1050 or 8188.
STEP 02

Code execution as couchdb user via Erlang RPC

Through the WebSocket tunnel to CouchDB on port 1050, the attacker uses the hardcoded Erlang distribution cookie (identical across all SMA1000 devices) to invoke os:cmd/1 and execute arbitrary commands as the unprivileged couchdb user. The attacker stages a malicious shell script (e.g., /tmp/1234.sh) containing post-exploitation payloads. This step establishes a low-privilege foothold on the appliance.
Conditions required:
  • Successful WebSocket tunnel from Step 1
  • Hardcoded Erlang cookie (device-invariant, not configurable)
Where this breaks in practice:
  • The Erlang cookie is the same on all SMA1000 units — zero per-device variation to slow an attacker
Detection/coverage: Look for unexpected erl_call or Erlang distribution protocol traffic on port 1050 in process logs. Hunt for new files in /tmp/ matching patterns like *.sh, hypdate.b64, agent_wp*.jar.
STEP 03

Privilege escalation to root via path traversal (CVE-2026-15410)

The attacker triggers /rollbackConfirm.action on ctrl-service (port 8188, accessible via the same tunnel) with the parameter hotfix=../../../../../tmp/1234.sh. The remove_hotfix workflow concatenates this input without path normalization and executes it as UID 0. The staged script now runs with full root privileges. This is the CVE under assessment.
Conditions required:
  • Low-privilege code execution from Step 2
  • Ability to reach ctrl-service on port 8188 via the WebSocket tunnel
Where this breaks in practice:
  • No additional authentication gate — ctrl-service trusts connections from localhost
Detection/coverage: Parse ctrl-service.log for /usr/local/bin/remove_hotfix invocations containing ../ traversal sequences. Alert on chmod operations followed by script execution in /tmp/.
STEP 04

Credential and MFA seed harvesting

With root access, the attacker deploys tcpdump to sniff unencrypted LDAP (TCP/389) and RADIUS traffic traversing the appliance, capturing plaintext usernames and passwords. They also exfiltrate TOTP/MFA seed configurations from the appliance's authentication databases, enabling persistent access that survives password resets. Custom malware tooling (ROOTRUN, KNUCKLEBALL, Suo5, ORANGETAIL) is installed for persistence.
Conditions required:
  • Root shell from Step 3
Where this breaks in practice:
  • None — root on a VPN gateway sees all authentication traffic by design
Detection/coverage: Hunt for tcpdump processes, setuid binaries via find / -perm -4000 -type f, and modifications to /etc/init.d/workplace or /var/lib/unit/conf.json. Check for known malware hashes.
STEP 05

Lateral movement to domain controllers and ransomware deployment

Using harvested credentials, the attacker authenticates from the SMA1000 appliance's internal IP directly to Active Directory domain controllers — observed as 'VPN-less' AD authentications from non-standard workstation names (KALI, DESKTOP-KRLUI3J). With domain admin credentials or MFA seeds, the attacker deploys INC Ransomware across the enterprise. 885 victims were reported between July 17 and August 1, 2026.
Conditions required:
  • Harvested credentials from Step 4
  • Domain controllers reachable from the SMA1000 internal interface
Where this breaks in practice:
  • Network segmentation between VPN appliance and DCs could slow this, but SMA1000 typically has broad internal access by design
Detection/coverage: Alert on AD authentication events originating from the SMA1000 appliance IP with unusual workstation names. Monitor for Kerberos TGT requests from VPN gateway IPs.
03 · Compensating Control

1
CRITICAL 9.4→IGNORE 0.0
SEVERITY REDUCED
Apply hotfix 12.4.3-03453+ or 12.5.0-02835+ immediately — This is the only complete remediation. Given CRITICAL severity and active ransomware exploitation, deploy within the noisgate mitigation SLA of 3 days. CISA KEV required federal agencies to patch by July 17. Treat this as an emergency change. The hotfix addresses both CVE-2026-15409 and CVE-2026-15410.
2
CRITICAL 9.4→HIGH 8.1
SEVERITY REDUCED
Restrict management console access to dedicated management VLAN — If patching requires a maintenance window, immediately restrict access to the Appliance Management Console (AMC) to a dedicated out-of-band management network. This does NOT block the /wsproxy attack vector on the VPN portal interface, so it only partially reduces risk. Deploy within hours as a bridge control.
3
CRITICAL 9.4→HIGH 7.5
SEVERITY REDUCED
Deploy WAF/reverse proxy rules blocking /wsproxy WebSocket upgrades with suspicious parameters — Block or alert on WebSocket upgrade requests to /wsproxy containing host=127.0.0.1, host=0.0.0.0, host=localhost, or port=1050/port=8188 parameters. This targets CVE-2026-15409, which is the chain entry point. Effectiveness depends on WAF placement in front of the SMA1000 — many deployments have no inline WAF before the VPN appliance.
4
CRITICAL 9.4→CRITICAL 9.4
Hunt for IOCs and assume compromise if unpatched past July 14 — Any SMA1000 that was internet-facing and unpatched between June 22 and patch date should be treated as potentially compromised. Hunt for: setuid binaries (find / -perm -4000), files in /tmp/ matching *.sh, hypdate.b64, agent_wp*.jar, modifications to /etc/init.d/workplace and /var/lib/unit/conf.json, known malware hashes. If IOCs are found, rotate ALL credentials that traversed the VPN and revoke/re-seed ALL MFA tokens.
5
CRITICAL 9.4→MEDIUM 4.0
SEVERITY REDUCED
Rotate all VPN-traversing credentials and MFA seeds post-patch — Even after patching, attackers who compromised the appliance have harvested credentials via LDAP/RADIUS sniffing and exfiltrated TOTP seeds. Patching stops new exploitation but does not revoke stolen credentials. Force password reset for all VPN users and re-enroll MFA. Complete within 7 days of patching.
What doesn't work
  • Network ACLs on the VPN port — SMA1000 must accept connections from arbitrary internet clients to function as a VPN gateway. You cannot firewall the attack surface without disabling the product.
  • MFA on the management console — CVE-2026-15409 bypasses the management console entirely by tunneling to localhost services that have no authentication layer. MFA on AMC login does not protect the /wsproxy → port 8188 chain.
  • IDS/IPS signatures for path traversal in HTTP — the /rollbackConfirm.action request travels over a WebSocket tunnel to localhost; it never crosses a network IDS sensor's inspection point.
  • SMA1000 built-in WAF/application firewall — the vulnerable endpoint is an internal management service, not a user-facing application behind the WAF. The appliance's own security features do not inspect traffic to its own localhost services.
04 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationConfirmed active zero-day since June 22, 2026 — three weeks before public disclosure. Tracked as UTA0533 by Volexity. Linked to INC Ransomware affiliate by Resecurity, with 885 victims reported between July 17–August 1, 2026. Custom malware families deployed: ROOTRUN, KNUCKLEBALL, Suo5, ORANGETAIL.
CISA KEVAdded 2026-07-14 (same day as advisory). CISA flagged ransomware campaign use. Federal agencies ordered to patch within 3 days (due date July 17, 2026).
EPSS0.11791 (11.79%) — well above the median, reflecting active exploitation and chain availability. This places it roughly in the top 5% of all scored CVEs.
Proof-of-ConceptRapid7 published technical details and PoC for the Erlang RPC component of the chain. Horizon3.ai published a detailed vulnerability analysis. GitHub repo HORKimhab/CVE-2026-15410 contains a Python exploit script (low quality, 0 stars). The chain is fully documented in Resecurity's technical writeup with endpoint details and payload syntax.
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H — the PR:H (high privileges required) is the reason for the 7.2 score. In the documented chain with CVE-2026-15409, the effective vector is PR:N (no auth), which would push the combined score to 9.8–10.0.
Affected VersionsSMA1000 6210, 7210, 8200v running firmware 12.4.3-03245, 12.4.3-03387, 12.4.3-03434 or 12.5.0-02283, 12.5.0-02624, 12.5.0-02800.
Fixed VersionsPlatform-hotfix 12.4.3-03453 or later; 12.5.0-02835 or later. No known distro backports (proprietary appliance firmware).
Internet ExposureShodan: ~2,380 SMA1000 management interfaces visible. Censys: ~3,700 exposed. These are VPN gateways — internet exposure is their default and intended posture. Shodan cannot distinguish patched from unpatched at the hotfix level.
Disclosure TimelineZero-day exploitation began ≥ June 22, 2026. SonicWall advisory SNWLID-2026-0008 published July 14, 2026. CISA KEV same day. Rapid7 and Volexity published technical analyses July 21, 2026.
Reporting ResearchersDiscovered by Rapid7 MDR team during incident response. Subsequent analysis by Volexity (UTA0533 tracking), Resecurity (INC Ransomware linkage), and Horizon3.ai (technical root cause).

Sources.

  1. Rapid7 — SonicWall SMA1000 Zero-Day Exploitation Analysis
  2. Resecurity — INC Ransomware and SonicWall SMA Exploit Chain
  3. Horizon3.ai — CVE-2026-15409 & CVE-2026-15410 Technical Analysis
  4. CISA KEV Catalog Addition (July 14, 2026)
  5. BleepingComputer — SonicWall SMA1000 Exploited by Ransomware Gangs
  6. eSentire — SonicWall Zero-Day Advisory
  7. Cybersecurity News — CISA Warns of Ransomware Deployment via SMA1000
  8. NVD — CVE-2026-15410 Detail
05 · The Call

Final Verdict
↑ UPGRADED to CRITICAL (9.4/10)

Why this verdict

  • Chain eliminates the auth gate: The vendor's 7.2 score rests entirely on PR:H (admin required). In every documented real-world attack, CVE-2026-15409 (CVSS 10.0 unauthenticated SSRF) provides the tunnel to localhost services that CVE-2026-15410 needs — reducing effective prerequisites to PR:N. The two CVEs share identical affected and patched version ranges and are inseparable operationally.
  • Zero network friction — perimeter by design: SMA1000 is a VPN gateway appliance. Unlike a database or internal app server, it is internet-facing in 100% of deployments. There is no 'restrict network access' compensating control that doesn't also break the product's core function. Shodan/Censys show 2,400–3,700 exposed instances.
  • Active ransomware weaponization: UTA0533 / INC Ransomware has been exploiting this chain since June 22, 2026 — three weeks before disclosure. 885 victims in two weeks. CISA KEV with ransomware flag. This is not theoretical risk.
  • Role multiplier: SMA1000 is *exclusively* a network edge appliance — 100% of installs occupy the high-value role. Root compromise of a VPN gateway yields: (1) all in-transit credentials and MFA seeds, (2) direct lateral movement to domain controllers from a trusted internal IP, (3) fleet-scale ransomware deployment. Blast radius is domain → fleet → supply chain. Per deployment-role rules, the verdict floor for a canonical network edge appliance with a working chain to domain takeover is CRITICAL.
  • Attacker tooling maturity: Custom malware families (ROOTRUN persistence, KNUCKLEBALL loader, ORANGETAIL memory-resident webshell, Suo5 tunneling) indicate a well-resourced, repeatable attack kit — not a one-off. The exploit chain is fully documented in public research with endpoint names, parameters, and payload syntax.

Why not higher?

A 9.4 rather than 10.0 because CVE-2026-15410 *in isolation* does require authentication and local service access — it is the second link in a two-CVE chain. An organization that has already patched CVE-2026-15409 but not CVE-2026-15410 retains meaningful protection, since the admin-auth prerequisite is restored. The chain dependency is a real architectural boundary even though it is trivially crossed today.

Why not lower?

Downgrading below CRITICAL is not defensible. The affected component is a perimeter VPN appliance that is internet-facing by definition (no network friction to discount). The chain partner CVE-2026-15409 is present in every affected firmware build (no version mismatch to discount). Active zero-day exploitation with ransomware deployment and 885+ confirmed victims eliminates any argument that exploitation is theoretical. The blast radius — credential harvest, MFA seed theft, domain controller pivot — is fleet-scale.

06 · Verification

Crowdsourced verification payload.

Run this script on the SMA1000 appliance itself via SSH or console as root. Invoke with: bash check_cve_2026_15410.sh. No arguments needed. The script reads the installed firmware version from the appliance's build metadata and compares it against known-patched versions.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/bin/bash
# check_cve_2026_15410.sh — SonicWall SMA1000 CVE-2026-15410 version checker
# Run on the SMA1000 appliance as root via SSH or console.
# Exit codes: 1=VULNERABLE, 0=PATCHED, 2=UNKNOWN

VERSION_FILE="/etc/build_version"
ALT_VERSION_FILE="/etc/sonic_build"

if [ -f "$VERSION_FILE" ]; then
  BUILD=$(cat "$VERSION_FILE" | tr -d '[:space:]')
elif [ -f "$ALT_VERSION_FILE" ]; then
  BUILD=$(grep -oP '[0-9]+\.[0-9]+\.[0-9]+-[0-9]+' "$ALT_VERSION_FILE" | head -1)
else
  # Fallback: try to extract from running process or system info
  BUILD=$(strings /usr/local/bin/ctrl-service 2>/dev/null | grep -oP '[0-9]+\.[0-9]+\.[0-9]+-[0-9]+' | head -1)
fi

if [ -z "$BUILD" ]; then
  echo "UNKNOWN — could not determine firmware version. Verify manually."
  echo "Check: Settings > Firmware in the AMC, or run 'cat /etc/build_version'"
  exit 2
fi

echo "Detected firmware build: $BUILD"

# Extract major.minor.patch and hotfix number
BRANCH=$(echo "$BUILD" | grep -oP '^[0-9]+\.[0-9]+\.[0-9]+')
HOTFIX=$(echo "$BUILD" | grep -oP '(?<=-)[0-9]+$')

if [ -z "$BRANCH" ] || [ -z "$HOTFIX" ]; then
  echo "UNKNOWN — could not parse version components from '$BUILD'."
  exit 2
fi

case "$BRANCH" in
  12.4.3)
    if [ "$HOTFIX" -ge 3453 ]; then
      echo "PATCHED — build $BUILD is >= 12.4.3-03453."
      exit 0
    else
      echo "VULNERABLE — build $BUILD is below 12.4.3-03453. Patch immediately."
      exit 1
    fi
    ;;
  12.5.0)
    if [ "$HOTFIX" -ge 2835 ]; then
      echo "PATCHED — build $BUILD is >= 12.5.0-02835."
      exit 0
    else
      echo "VULNERABLE — build $BUILD is below 12.5.0-02835. Patch immediately."
      exit 1
    fi
    ;;
  *)
    # Versions outside 12.4.3 and 12.5.0 — may not be affected or may be EOL
    echo "UNKNOWN — branch $BRANCH is not in the known affected range (12.4.3 / 12.5.0)."
    echo "If this is an older branch, it may be EOL and unpatched. Contact SonicWall support."
    exit 2
    ;;
esac