Detect Ivanti Sentry OS Command Injection Exploitation (CVE-2026-10520) in Microsoft Sentinel
Detects exploitation attempts targeting CVE-2026-10520, an OS command injection vulnerability (CWE-78) in Ivanti Sentry. This vulnerability is actively exploited in the wild (CISA KEV) and allows unauthenticated or authenticated attackers to inject operating system commands through Ivanti Sentry's administrative or API interfaces, potentially leading to full system compromise. Ivanti Sentry acts as a gateway for enterprise mobile device management, making it a high-value target for threat actors seeking persistent access to corporate infrastructure.
MITRE ATT&CK
KQL Detection Query
let SentryHosts = DeviceNetworkEvents
| where RemotePort in (8443, 443, 9090)
| distinct DeviceName;
let CommandInjectionPatterns = dynamic([";", "&&", "||", "`", "$(", ">/", "wget ", "curl ", "chmod ", "bash ", "sh ", "python", "perl ", "nc ", "ncat ", "mkfifo"]);
DeviceProcessEvents
| where DeviceName in (SentryHosts)
| where InitiatingProcessParentFileName in~ ("java", "tomcat", "catalina.sh", "sentry") or InitiatingProcessFileName in~ ("java", "sh", "bash")
| where ProcessCommandLine has_any (CommandInjectionPatterns)
| where FileName in~ ("sh", "bash", "python", "python3", "perl", "wget", "curl", "nc", "ncat", "chmod", "id", "whoami", "uname", "cat", "cp", "mv")
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessParentFileName
| extend RiskScore = case(
FileName in~ ("nc", "ncat", "mkfifo"), "Critical",
FileName in~ ("wget", "curl") and ProcessCommandLine matches regex @"(http|https)://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}", "High",
FileName in~ ("id", "whoami", "uname"), "Medium",
"Low"
)
| where RiskScore in ("Critical", "High", "Medium")
| order by Timestamp desc Identifies OS command injection exploitation against Ivanti Sentry by detecting suspicious child processes spawned from Java/Tomcat processes on hosts receiving inbound connections on Sentry management ports. Flags shell invocations, reverse shell tools, and reconnaissance commands consistent with CVE-2026-10520 exploitation.
Data Sources
Required Tables
False Positives & Tuning
- Legitimate administrative scripts executed by Ivanti Sentry service accounts during maintenance windows
- Automated health check scripts invoking shell commands via Java process on monitored hosts
- Security scanning tools (Qualys, Tenable) running authenticated OS-level checks against Sentry appliances
- Ivanti software update processes spawning shell commands during patch installation
Other platforms for CVE-2026-10520
Testing Methodology
Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Ivanti Sentry CVE-2026-10520 Basic Command Injection Simulation
Expected signal: EDR should record process creation event: parent=java, child=bash with arguments '-c' and 'id; whoami; uname -a; cat /etc/passwd | head -3'. Auditd should record EXECVE syscall with ppid matching java process PID. Network telemetry: no outbound connections expected in this basic test.
- Test 2Ivanti Sentry Reverse Shell Simulation via Java Parent
Expected signal: Process chain: java -> bash (args: -c, 'echo ... | nc 127.0.0.1 9999') -> nc (args: 127.0.0.1, 9999). Network connection event: nc connecting to 127.0.0.1:9999. Auditd EXECVE syscalls for bash and nc with ppid chain traceable to java.
- Test 3Ivanti Sentry Web Shell Drop Simulation
Expected signal: File creation event: /tmp/sim_sentry_webapps/cmd_sim_marker.jsp created by initiating process java (sentry_webshell_sim). Process creation event: java spawning bash to list directory contents. EDR file monitoring should record .jsp creation in simulated webapps directory with java as initiating process.
- Test 4Ivanti Sentry Credential Staging Simulation
Expected signal: Process chain: java -> bash (multiple invocations with file read and base64 encoding commands). File access events: reads of simulated credential files. File creation event: /tmp/exfil_stage.b64 created by bash initiating from java parent. Auditd EXECVE records for bash invocations with ppid traceable to java.
References (4)
- https://hub.ivanti.com/s/article/Security-Advisory-Ivanti-Sentry-CVE-2026-10520-CVE-2026-10523?language=en_US
- https://www.cisa.gov/news-events/directives/bod-26-04-prioritizing-security-updates-based-risk
- https://www.cisa.gov/news-events/directives/bod-26-04-implementation-guidance-prioritizing-security-updates-based-risk
- https://nvd.nist.gov/vuln/detail/CVE-2026-10520
Unlock Pro Content
Get the full detection package for CVE-2026-10520 including response playbook, investigation guide, and atomic red team tests.