It's as if someone removed the lock on the door to your building's security control room and the intruders are already inside
CVE-2026-76460 is an authentication bypass in a privileged API endpoint of Cisco Identity Services Engine (ISE) and ISE Passive Identity Connector (ISE-PIC). The vulnerable code path fails to enforce the same authorization and session validation applied to the web UI, meaning API calls that should require an authenticated administrative session can be invoked without one. A remote, unauthenticated attacker sends a crafted HTTP request to TCP/443 or TCP/9060 and obtains root-level command execution on the appliance. All ISE versions from 3.0 (EOL) through 3.5 are affected regardless of configuration. Fixed releases are ISE 3.1 Patch 12, 3.2 Patch 11, 3.3 Patch 12, 3.4 Patch 7, and 3.5 Patch 4.
Cisco's CVSS 10.0 CRITICAL rating is not only accurate — it may *understate* the operational impact. A CVSS score cannot capture the fact that ISE is the identity and authorization backbone for every 802.1X, RADIUS, and TACACS+ decision on your network. Root on ISE means the attacker can authorize arbitrary devices onto the network, harvest RADIUS/TACACS+ shared secrets and Active Directory machine-account credentials, extract EAP-TLS certificate material, push malicious context through pxGrid to firewalls and SIEMs, and erase their own audit trail. This was a zero-day at disclosure — Cisco confirmed active exploitation before the advisory dropped — and CISA added it to KEV the same day with a 3-day federal remediation deadline. There is no workaround. Vendor severity matches reality.
5 steps from start to impact.
Identify reachable ISE management interface
- Network reachability to ISE management plane (TCP/443 or TCP/9060)
- Well-segmented environments restrict ISE management to a dedicated OOB management VLAN
- Internet-facing ISE management is a misconfiguration, but ~4,076 instances are confirmed exposed
Send crafted API request to bypass authentication
/ers/config/, /admin/API/, /api/v1/), bypassing the web-based login flow entirely. The vulnerable code path does not enforce session validation on these endpoints. No credentials, cookies, or tokens are required. The exploit is configuration-independent — no optional ISE features need to be enabled.- HTTP connectivity to the vulnerable API endpoint
- No authentication credentials needed
- Infrastructure ACLs restricting management traffic would block the request
- No WAF signature existed at disclosure (zero-day)
/ers/config/, /admin/API/, /api/v1/ from non-admin source IPs; review ise-kong/access.log for suspicious usernamesObtain root shell on ISE appliance
- Successful API bypass from Step 2
- None — exploitation is deterministic once the API is reachable
dummyuser or unusual usernames in ise-kong/access.logHarvest identity and network credentials
- Root access on ISE node
- Credential vaulting or HSM-backed key storage would limit extraction — but ISE stores these in its local database by default
Manipulate network access policy and erase evidence
- Root access on ISE node
- pxGrid integrations configured (common in mature deployments)
- External syslog forwarding preserves evidence if ISE logs are shipped before deletion
- Network device logs on downstream switches/routers may show policy changes
admin#show logging application ise-kong/access.log | include dummyuser on every ISE node. Cross-reference firewall logs for unexpected outbound data transfers from ISE IPs. Check for unauthorized admin accounts or policy changes. If compromise is confirmed, reimage the node — do not attempt in-place remediation, as root-level attackers can persist beyond a patch.- Web Application Firewall (WAF) in front of ISE — ISE management is not typically proxied through a WAF, and the crafted API requests may not match standard WAF rulesets since no public PoC exists for signature development.
- ISE local logging alone — An attacker with root access can delete or modify
ise-kong/access.logentries. Local log review is necessary but not sufficient; you must correlate with external syslog, firewall, and NetFlow data. - Network-level IDS/IPS signatures — No public exploit signatures exist as of 2026-10-09. Snort/Suricata rules cannot be written without PoC details. Detection must rely on behavioral indicators, not payload matching.
- Disabling specific ISE features — Cisco confirms the vulnerability is configuration-independent. No feature toggle, API disable, or service restart mitigates it.
The supporting signals.
| In-the-Wild Exploitation | Confirmed active. Cisco PSIRT acknowledged exploitation before advisory publication on 2026-09-16. CISA added to KEV the same day under BOD 26-04 with a 3-day federal remediation window. |
|---|---|
| Proof-of-Concept Status | No public PoC on GitHub, pocindex.io, ExploitDB, or Metasploit as of 2026-10-09. However, KEV listing confirms working exploits exist in adversary hands. Treat as weaponized. No nuclei template available yet. |
| EPSS Score | 0.14026 (14.03% probability of exploitation in next 30 days) — places this in approximately the 97th percentile of all scored CVEs. Extremely high. |
| CISA KEV Status | Listed 2026-09-16. Federal remediation deadline was 2026-09-19 (3 days). Added alongside CVE-2026-87886 (Acronis Backup). |
| CVSS Vector Interpretation | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — Network-accessible, low complexity, no privileges, no user interaction, scope changed (impact beyond ISE itself), maximum CIA impact. Perfect 10.0. Every metric is worst-case. |
| Affected Version Ranges | Cisco ISE 3.0 (EOL — no fix, must migrate), 3.1 (< Patch 12), 3.2 (< Patch 11), 3.3 (< Patch 12), 3.4 (< Patch 7), 3.5 (< Patch 4). ISE-PIC also affected across same ranges. |
| Fixed Versions | ISE 3.1P12, 3.2P11, 3.3P12, 3.4P7, 3.5P4. No backport for 3.0 (EOL). |
| Internet Exposure | ZoomEye scan (2026-09-22) found 4,076 internet-facing ISE management interfaces. Version cannot be determined from fingerprint alone. ISE admin services on TCP/443 and TCP/9060. |
| Disclosure Date | 2026-09-16 (zero-day — exploitation preceded disclosure). Cisco Bug ID: CSCww39530. |
| Reporting Researcher | Not publicly attributed. Cisco PSIRT credited internal detection of exploitation activity. |
Sources.
- Cisco Security Advisory cisco-sa-ISE-ABP-VNSW7Tn5
- CISA KEV Alert — September 16, 2026
- Help Net Security — Unauthenticated attackers bypassing Cisco ISE
- Security Arsenal — CVE-2026-76460 Detection and Remediation Guide
- SOCPrime — CVE-2026-76460 Cisco ISE Zero-Day Exploited
- DEV Community — 4,076 ISE Fingerprint Matches on the Internet
- DEV Community — Cisco ISE CVE-2026-76460: Policy Engine as Weakest Link
- Cisco Community Knowledge Base — CVE-2026-76460
Why this verdict
- Unauth RCE with zero friction: The attack chain is two steps — reach the management interface, send one HTTP request, get root. No credentials, no user interaction, no special configuration required. Attack complexity is genuinely low.
- KEV-listed active zero-day: Exploitation was confirmed *before* the advisory. CISA gave federal agencies 3 days. EPSS at 14.03% is 97th percentile. This is not theoretical — adversaries have working exploits today.
- Role multiplier: Cisco ISE is canonically identity and trust infrastructure. 100% of ISE deployments occupy the high-value identity/NAC role — that is ISE's only purpose. Root on ISE yields RADIUS/TACACS+ shared secrets for every managed switch and router, Active Directory machine-account credentials, EAP-TLS certificate material, and pxGrid context-sharing to firewalls and SIEMs. The blast radius is domain-scale to fleet-scale: an attacker can authorize arbitrary devices, harvest credentials for lateral movement to AD, manipulate network segmentation policy, and erase their own audit trail. This meets the CRITICAL floor for canonical high-value-role components with domain-takeover blast radius.
- No workaround exists: Cisco explicitly states there are no software workarounds. The only mitigation is network ACLs restricting management access — a compensating control, not a fix.
- 4,076 internet-facing instances: While ISE management should never be internet-exposed, thousands of deployments are. Even for internal-only deployments, ISE management must be routable from every authenticating network device, giving internal attackers (post-initial-access) a wide attack surface.
Why not higher?
This is already rated at the maximum CVSS score of 10.0 and assessed as CRITICAL — the highest severity tier. There is no higher category to assign.
Why not lower?
Every downgrade pressure point fails: (1) The 'requires network access to management interface' friction is negated by 4,076+ confirmed internet-facing instances and the fact that ISE management must be broadly routable internally. (2) The 'no public PoC' argument is irrelevant — KEV listing proves adversaries already have working exploits. (3) ISE is a canonical high-value-role component (100% of installs are identity infrastructure) with domain-scale blast radius, setting a CRITICAL verdict floor that friction cannot breach. Downgrading this would require evidence that <1% of the installed base is reachable, which the exposure data directly contradicts.
Crowdsourced verification payload.
Run this script on the ISE appliance itself via SSH as an admin user (or from a remote host with SSH access). Invoke with: bash check_cve_2026_76460.sh <ise_hostname_or_ip>. Requires SSH credentials for the ISE admin CLI. The script checks the running ISE version and patch level against known-fixed releases.
#!/usr/bin/env bash
# CVE-2026-76460 Cisco ISE Authentication Bypass - Version Check
# Usage: bash check_cve_2026_76460.sh <ISE_HOST>
# Requires: SSH access to ISE admin CLI
# Output: VULNERABLE / PATCHED / UNKNOWN
set -euo pipefail
HOST="${1:-}"
if [[ -z "$HOST" ]]; then
echo "Usage: $0 <ISE_HOST>"
echo " Checks ISE patch level against CVE-2026-76460 fixed versions."
exit 3
fi
echo "[*] Connecting to $HOST to retrieve ISE version..."
VERSION_OUTPUT=$(ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new "admin@${HOST}" 'show version' 2>/dev/null) || {
echo "[!] SSH connection failed. Verify connectivity and credentials."
echo "UNKNOWN"
exit 2
}
# Extract version and patch level
# Typical output line: "Version : 3.3.0.430"
# Patch line: "Patch : 11"
ISE_VERSION=$(echo "$VERSION_OUTPUT" | grep -i '^Version' | awk -F: '{print $2}' | tr -d ' ')
ISE_PATCH=$(echo "$VERSION_OUTPUT" | grep -i '^Patch' | awk -F: '{print $2}' | tr -d ' ')
if [[ -z "$ISE_VERSION" ]]; then
echo "[!] Could not parse ISE version from output."
echo "UNKNOWN"
exit 2
fi
echo "[*] Detected ISE Version: $ISE_VERSION"
echo "[*] Detected ISE Patch Level: ${ISE_PATCH:-none}"
# Extract major.minor
MAJOR_MINOR=$(echo "$ISE_VERSION" | grep -oP '^\d+\.\d+')
PATCH_NUM=${ISE_PATCH:-0}
case "$MAJOR_MINOR" in
3.0)
echo "[!] ISE 3.0 is END-OF-LIFE. No fix available. Must migrate."
echo "VULNERABLE"
exit 1
;;
3.1)
FIXED_PATCH=12
;;
3.2)
FIXED_PATCH=11
;;
3.3)
FIXED_PATCH=12
;;
3.4)
FIXED_PATCH=7
;;
3.5)
FIXED_PATCH=4
;;
*)
echo "[?] Unrecognized ISE version: $MAJOR_MINOR"
echo "UNKNOWN"
exit 2
;;
esac
if [[ "$PATCH_NUM" -ge "$FIXED_PATCH" ]]; then
echo "[+] ISE $MAJOR_MINOR Patch $PATCH_NUM >= fixed Patch $FIXED_PATCH"
echo "PATCHED"
exit 0
else
echo "[-] ISE $MAJOR_MINOR Patch $PATCH_NUM < fixed Patch $FIXED_PATCH"
echo "VULNERABLE"
exit 1
fi