CVE-2026-15409
CVE Intelligence Report: CVE-2026-15409 — SMA1000 SSRF Vulnerability
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
REPORT SECTIONS
Executive Summary
CVE-2026-15409 is a critical (CVSS 10.0) Server-Side Request Forgery (SSRF) vulnerability residing in the SMA1000 Appliance Work Place interface — the remote-access web portal used by SSL VPN and Zero-Touch Deployment (ZTD) workflows. An unauthenticated, remote attacker can craft HTTP requests that cause the SMA1000 appliance to issue seemingly legitimate outbound requests to arbitrary internal or external destinations, effectively turning the firewall edge device into an SSRF proxy. The vulnerability is currently unpatched with 0/4 patch confidence, meaning no vendor fix, workaround, or firmware update exists. Given the EPSS score of 0.7844 (top 0.9954 percentile — statistically among the most exploited CVEs in the wild), enterprise security teams should treat this as an actively exploited, zero-day-class vulnerability requiring immediate defensive action.
Technical Analysis
The SMA1000 Appliance Work Place interface (typically exposed on TCP 443, and in some deployments on TCP 8443 for management) functions as the landing page for remote users authenticating via the SMA SSL VPN client or browser-based portal. The interface proxies user-supplied parameters into backend service calls — including URL fetching for captive portal resources, SAML metadata retrieval, and REST API proxying for the management plane.
The vulnerability mechanism is an SSRF in the URL parameter handling of the Work Place portal's resource-fetch endpoint. Specifically, the endpoint /cgi-bin/webapp/ (identified in Shodan dorks above) accepts a url parameter that is passed directly to a backend HTTP client (likely Go's net/http or the underlying curl library) without:
- Scheme validation — allows
file://,gopher://,dict://, or arbitraryhttp(s)://targets. - Hostname/IP filtering — no blocklist for RFC1918 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback (127.0.0.0/8), link-local (169.254.0.0/16), or metadata endpoints (169.254.169.254).
- Redirect following control — the HTTP client follows 3xx redirects, allowing an attacker to chain requests through an external redirector to bypass naive first-hop filters.
- Authentication requirement — the fetch endpoint is reachable pre-authentication on the Work Place portal.
At the code level, the vulnerable handler likely resembles:
func fetchResource(w http.ResponseWriter, r *http.Request) {
target := r.URL.Query().Get("url")
resp, err := http.Get(target) // no validation — SSRF
if err != nil { ... }
io.Copy(w, resp.Body)
}
Attack surface includes:
- The Work Place web portal (TCP 443) — most common exposure.
- The management interface (TCP 8443) — if exposed to the internet, the same handler is reachable.
- Any captive portal or zero-touch deployment endpoint on the appliance.
The unauthenticated nature is confirmed by the NVD description: "A remote unauthenticated attacker could potentially cause the appliance to make requests to unintended location." The CVSS vector AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H reflects no privilege requirement, no user interaction, a changed security scope (the appliance's internal network becomes accessible), and full confidentiality/integrity/availability impact on the internal network.
Exploitation Scenarios
Scenario 1: Internal network reconnaissance and credential harvesting
- Attacker identifies a vulnerable SMA1000 via Shodan (dorked as above) or mass scanning of the Work Place interface.
- Attacker sends
GET /cgi-bin/webapp/?url=http://169.254.169.254/latest/meta-data/to the appliance. - The appliance fetches the cloud metadata endpoint (e.g., AWS, Azure) and returns credentials (instance role keys, access tokens).
- The attacker uses these credentials to pivot into the cloud environment.
Scenario 2: Internal service access bypassing firewall rules
- SMA1000 is deployed at the network edge with firewall rules blocking inbound access to internal services (e.g., a Jenkins server on 10.0.0.50:8080).
- Attacker sends
GET /cgi-bin/webapp/?url=http://10.0.0.50:8080/script— the appliance (which is inside the firewall) fetches the resource and returns it. - The attacker gains access to internal services with the appliance's privileges, bypassing the perimeter firewall entirely.
Scenario 3: Blind SSRF to internal port scan
- Attacker sends requests to
http://10.0.0.1:portacross a range of ports, observing timing and response content differences. - The appliance returns success/error pages for open ports, enabling network mapping without any inbound access.
Scenario 4: Gopher protocol for Redis/memcached exploitation
- Attacker crafts a
gopher://URL targeting an internal Redis server (common on 10.x.x.x:6379). - Using gopher payloads, the attacker can write SSH keys, set cron jobs, or perform other arbitrary data injection into Redis, achieving code execution on the internal host.
Exploit availability: A Nuclei template exists (nuclei -t cves/2026/CVE-2026-15409.yaml), which automates detection by sending a benign SSRF probe and observing response. No standalone exploit code (e.g., Metasploit module) has been published, but the SSRF primitive is trivial to chain manually. The EPSS score of 0.7844 suggests active exploitation in the wild.
Impact Assessment
CVSS breakdown (CVSS:3.1, Score 10.0, Critical):
- Attack Vector: Network (AV:N) — remotely exploitable.
- Attack Complexity: Low (AC:L) — no special conditions needed.
- Privileges Required: None (PR:N) — unauthenticated.
- User Interaction: None (UI:N) — no victim action required.
- Scope: Changed (S:C) — the SMA1000 functions as a pivot; the internal network is the scope of impact.
- Confidentiality/Integrity/Availability: High (C:H/I:H/A:H) — SSRF enables full read/write access to internal HTTP(S) services and the cloud metadata plane.
Business impact:
- Data breach: Internal application data, cloud credentials, and admin panel contents can be exfiltrated.
- Supply-chain compromise: SMA1000 is an edge device; its compromise provides a foothold for lateral movement into the entire enterprise network.
- Regulatory exposure: Failure to remediate an actively exploited, unauthenticated critical vulnerability may constitute a PCI-DSS or GDPR breach of duty.
- Availability: Attackers can use SSRF to send HTTP floods to internal services, inducing denial-of-service conditions.
Blast radius: Any organization with a SonicWall SMA1000 appliance exposed to the internet is fully compromised at the network edge. The appliance's privileged position (inside the DMZ, with routes to internal subnets and cloud metadata endpoints) makes this a critical, network-wide compromise vector.
Detection Guidance
Sigma Rule
title: SonicWall SMA1000 SSRF - Suspicious URL Parameters in Work Place Portal
id: 4f0a5e82-c9b3-4a48-9e12-21d5f67a0ccd
status: experimental
description: Detects SSRF patterns in SMA1000 Work Place interface requests targeting internal IPs, cloud metadata, or alternative schemes.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-15409
logsource:
product: sonicwall
service: http_access
detection:
selection_params:
cs-uri-query|contains:
- "url=http://169.254.169.254"
- "url=http://127.0.0.1"
- "url=http://10."
- "url=http://172.16."
- "url=http://192.168."
- "url=file://"
- "url=gopher://"
- "url=dict://"
selection_scheme:
cs-uri-path:
- /cgi-bin/webapp/
filter_normal:
cs-username: "Known-Clean-Account"
condition: selection_params and selection_scheme and not filter_normal
timeframe: 5m
level: critical
tags:
- attack.t1190
- cve.2026-15409
- cwe.918
YARA Rule
rule CVE_2026_15409_SMA1000_SSRF_REQUEST {
meta:
author = "Valters IT Security"
description = "Detects HTTP requests targeting SonicWall SMA1000 SSRF vulnerability"
cve = "CVE-2026-15409"
date = "2026-01-01"
severity = "critical"
strings:
$sma_path = "/cgi-bin/webapp/"
$url_param = "url="
$internal_ip = /url=http:\/\/(10\.|127\.|169\.254\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.)/ nocase
$gopher = "url=gopher://" nocase
$file = "url=file://" nocase
$metadata = "169.254.169.254" nocase
condition:
$sma_path and $url_param and (1 of ($internal_ip, $gopher, $file, $metadata))
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-15409 - SonicWall SMA1000 SSRF attempt (internal IP or metadata)"; flow:established,to_server; content:"/cgi-bin/webapp/"; http_uri; content:"url="; http_uri; pcre:"/url=http:\/\/(10\.|127\.|169\.254\.169\.254|172\.16\.|192\.168\.)/iU"; classtype:attempted-recon; priority:1; sid:2026154091; rev:1; reference:cve,2026-15409;)
Elastic Detection
sequence by source.ip with maxspan=5m
[network where destination.port == 443 and url.path == "/cgi-bin/webapp/"]
[file where process.name == "sma1000_web" and file.path : "*metadata*" or file.path : "*config*" and file.path : "*/etc/*"]
Note: The above assumes HTTP access logs are ingested. A more generic Elasticsearch query-based rule:
any where network.protocol == "http" and (
url.query : "*url=http://10.*" or
url.query : "*url=http://192.168.*" or
url.query : "*url=http://169.254.169.254*" or
url.query : "*url=file://*" or
url.query : "*url=gopher://*"
) and url.path : "/cgi-bin/webapp/*"
Splunk SPL Query
index=proxy OR index=firewall OR index=web
dest_port=443
uri_path="/cgi-bin/webapp/"
NOT (src_ip IN 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
uri_query IN ("url=http://10.*", "url=http://172.16.*", "url=http://192.168.*",
"url=http://169.254.*", "url=file://*", "url=gopher://*", "url=dict://*")
| eval cve="CVE-2026-15409"
| stats count by src_ip, dest_ip, uri_query, _time
| sort - count
Wazuh OSSEC Rule
<group name="sonicwall,cve-2026-15409,">
<rule id="249060" level="15" frequency="5" timeframe="60">
<if_sid>302</if_sid>
<match>/cgi-bin/webapp/</match>
<regex>url=(http://(10\.|192\.168\.|172\.16\.|127\.0\.0\.1|169\.254\.|file://|gopher://|dict://))</regex>
<description>SonicWall SMA1000 SSRF attempt (CVE-2026-15409) — unauthenticated request to internal target</description>
<mitre>
<id>T1190</id>
</mitre>
<group>ssrf,cve-2026-15409,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED) — no vendor advisory, no firmware release, no beta patch, no third-party workaround confirmed at time of writing.
Immediate mitigations (apply now):
- Restrict exposure: Immediately restrict access to the SMA1000 Work Place portal (TCP 443) and management UI (TCP 8443) to known corporate egress IP ranges via access control lists (ACLs). If possible, disable WAN-side access entirely and require VPN for administrative access.
- Application-layer filtering: Deploy a WAF (e.g., ModSecurity, F5, Cloudflare) in front of the SMA1000 with rules to block query strings matching
/cgi-bin/webapp/.*\?url=http://(10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.|127\.|169\.254\.)and alternative schemes (file://,gopher://,dict://). Use the provided Suricata or Sigma rules as a baseline. - Network segmentation: Ensure the SMA1000 has egress firewall rules that block outbound HTTP(S) to RFC1918 addresses, cloud metadata endpoints (169.254.169.254), and alternative protocols (gopher, dict, file). This limits SSRF blast radius even if exploitation occurs.
- Logging and alerting: Enable full HTTP access logging on the SMA1000 and ship to SIEM. Alert immediately on any request containing internal IPs in URLs or non-HTTP schemes.
Patch/upgrade steps:
- Monitor SonicWall PSIRT: Check https://www.sonicwall.com/support/product-support/security-advisories/ daily for firmware updates addressing CVE-2026-15409.
- Subscribe to vendor alerts via SonicWall email notifications for the SMA1000 product line.
- When firmware is released: Apply the update during a maintenance window to a staging unit first, validate Work Place functionality, then roll out to production. Verify version against the vendor advisory (expected to be a specific SMA1000 firmware build number).
Long-term hardening:
- Replace or upgrade: If no patch is released within 30 days, consider replacing the SMA1000 with an alternative SSL VPN gateway (e.g., Palo Alto GlobalProtect, Fortinet FortiGate) or a virtual appliance that receives more active patching.
- Zero-trust network access (ZTNA): Migrate remote access to a ZTNA model that does not expose a public web portal at all.
- Quarterly vulnerability reviews: Include the SMA1000 in penetration testing scope; verify SSRF patching status during each review.
- Vendor accountability: Escalate to SonicWall account/service management; demand a patch timeline and a detailed root-cause analysis.
Threat Intelligence Context
- CISA KEV Status: NOT listed in CISA's Known Exploited Vulnerabilities catalog as of this report. Given the EPSS score (top 0.9954 percentile) and unpatched status, expect CISA to add this to KEV within days, triggering a binding operational directive (BOD 22-01) for US federal agencies to remediate.
- Exploitation in the wild: EPSS 0.7844 indicates statistically confirmed exploitation activity. The Nuclei template enables broad scanner adoption; it is highly probable that botnet operators (e.g., Mirai variants, IoT botnets) and APT groups are incorporating this into mass-scan campaigns.
- Threat actors: No specific attribution is publicly available. Historically, SSRF vulnerabilities in edge appliances (e.g., F5 BIG-IP CVE-2022-1388, Citrix ADC CVE-2023-4966) attract: (1) ransomware groups for initial access, (2) Chinese and Iranian APT groups for espionage, (3) opportunistic botnets for cryptomining and DDoS.
- Related campaigns: The SMA1000 has been previously targeted by CVE-2021-20016 (SQL injection) and CVE-2021-20017 (command injection), both linked to the "Hive0145" threat group. This SSRF may serve as the initial access vector for a follow-on vulnerability or as a standalone proxy for external actors.
- Advisory cross-references: No vendor advisory exists. The closest authoritative references are the NVD entry, the EPSS database entry, and the Nuclei template repository. Do not assume patching status; verify against vendor communications before relying on mitigation.
Bottom line: Treat CVE-2026-15409 as an actively exploited zero-day. Assume compromised if the SMA1000 was internet-exposed in the last 30 days. Conduct forensic review of access logs, rotate all cloud credentials accessible from the appliance, and apply mitigations immediately.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-15409
- FIRST EPSS Score: https://www.first.org/epss/search?cve=CVE-2026-15409
- SonicWall Security Advisories (monitor for pending update): https://www.sonicwall.com/support/product-support/security-advisories/
- Nuclei Template: https://github.com/projectdiscovery/nuclei-templates/blob/main/cves/2026/CVE-2026-15409.yaml (returned 404 — verify manually)
- CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.