Skip to main content
Mallory
CriticalCISA KEVExploited in the wildPublic exploit

Unauthenticated RCE in Ivanti Endpoint Manager Mobile (EPMM)

IdentifiersCVE-2026-1281CWE-94· Improper Control of Generation of…Also known asivanti_endpoint_manager_mobile_(epmm)_cve_2026_1281

CVE-2026-1281 is a critical code-injection vulnerability in Ivanti Endpoint Manager Mobile (EPMM) that can lead to unauthenticated remote code execution. Ivanti states the issue affects the In-House Application Distribution and Android File Transfer Configuration features in on-premises EPMM. Supporting reporting indicates exploitation activity targeted the /mifs/c/appstore/fob/ path, and Ivanti’s detection guidance highlights suspicious requests to /mifs/c/(aft|app)store/fob/. Successful exploitation allows arbitrary command or code execution on the EPMM appliance without authentication. Affected versions include EPMM 12.5.0.0 and prior, 12.6.0.0 and prior, 12.7.0.0 and prior, 12.5.1.0 and prior, and 12.6.1.0 and prior. Ivanti disclosed the flaw on 2026-01-29 and reported that it had already been exploited as a zero-day against a very limited number of customers.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation provides unauthenticated remote code execution on the Ivanti EPMM appliance, enabling full compromise of the management server. Ivanti guidance states this can expose sensitive device, administrator, and user information available via the MIFS portal, permit unauthorized changes to EPMM configuration through the API or web console, and support payload deployment, webshell or reverse-shell persistence, and lateral movement. Because EPMM manages enterprise mobile devices and may be connected to Ivanti Sentry and internal services, compromise can extend into managed mobile environments and adjacent internal networks.

Mitigation

If you can’t patch tonight, do this now.

Review off-box or SIEM-collected Apache access logs, especially /var/log/httpd/https-access_log, for suspicious requests to /mifs/c/(aft|app)store/fob/ returning 404 and GET requests containing bash-command parameters. Do not rely solely on local logs because attackers may clear or tamper with them. Hunt for post-exploitation artifacts including modified HTTP error pages used as webshells (for example 401.jsp with POST handling), unexpected WAR or JAR files, unusual outbound or long-running connections from the appliance, and anomalous changes to administrative accounts or device configuration. Restrict internet exposure of EPMM administrative interfaces where possible, increase monitoring, and investigate systems reachable via Sentry for recon or lateral movement. If prior exploitation is possible, rotate credentials and assess for persistence before returning the system to production.

Remediation

Patch, then assume compromise.

Apply Ivanti’s fixed EPMM updates immediately. The affected branches listed in the provided content are 12.5.0.0 and prior, 12.6.0.0 and prior, 12.7.0.0 and prior, 12.5.1.0 and prior, and 12.6.1.0 and prior; Ivanti also indicated a permanent fix would be included in EPMM 12.8.0.0. If an instance is suspected compromised, Ivanti does not recommend attempting in-place cleanup; instead restore from a known-good backup or VM snapshot taken before exploitation, or rebuild a replacement EPMM instance and migrate data. Perform recovery while the system is not internet-accessible, then apply patches before returning it to service. If the optional 'Store keys on Core' feature was enabled, revoke previously generated user certificates and regenerate them. Ivanti also noted that the January patches do not survive version upgrades and must be reinstalled after upgrading until running a fully fixed release.
PUBLIC EXPLOITS

Exploits

2 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos (1 hidden).

VALID 2 / 3 TOTALView more in app
CVE-2026-1281-CVE-2026-1340-Ivanti-EPMM-RCEMaturityPoCVerified exploit

Repository purpose: a Dockerized dummy target that reproduces the Ivanti EPMM pre-auth RCE class (CVE-2026-1281 / CVE-2026-1340) in a simplified, educational setup. How the exploit works (core bug): - `scripts/map-appstore-url` is a Bash CGI script that URL-decodes `REQUEST_URI`, extracts the `sha256:<params>` segment, and splits it into comma-separated key=value pairs. - During parsing, it sets `gStartTime` from the `st=` parameter and later sets `theValue` from the last processed parameter (notably `h=`). The loop variable `theValue` persists after the loop. - If the attacker sets `st=theValue␠␠` (literal string plus padding to reach length 10) and sets `h=gPath[`<cmd>`]`, then later the script evaluates `[[ ${currentTime} -gt ${gStartTime} ]]`. - In Bash, the `-gt` comparison triggers arithmetic evaluation; the string `theValue` is treated as a variable reference, expanding to the attacker-controlled `theValue` content (`gPath[`cmd`]`). The array index contains backticks, causing command substitution and thus remote command execution. Exploit capabilities demonstrated: - Arbitrary command execution as the CGI process user (in the container, examples show root-like output in artifacts). - File write/creation under `/mi` (mounted to `./artifacts`) to prove execution. - Time-based execution (`sleep N`) to confirm RCE without relying on output. Repository structure: - `Dockerfile`: builds a Debian-based container with nginx + fcgiwrap, installs the vulnerable CGI script, and prints example vulnerable URLs on startup. - `nginx.conf`: exposes `/health` and routes `/mifs/c/appstore/fob/3/<int>/sha256:<...>/<name>.ipa` to the CGI script via fcgiwrap. - `scripts/map-appstore-url`: the vulnerable Bash CGI implementation and logging. - `docker-compose.yml`: runs the container on host port 8180 and mounts `./artifacts` to `/mi` for observing exploit artifacts. - `test-exploit.sh`: automated local test suite that hits `/health` and sends exploit requests to create/write files and perform a time-based check. - `README.md`: explains the vulnerability chain and provides example curl payloads. Notable observables/fingerprintable targets: - HTTP endpoints: `/health` and the regex-matched `/mifs/c/appstore/fob/3/.../.ipa` path. - Local artifact paths: `/mi/*` in-container and `./artifacts/*` on host. - Potential documentation inconsistency: README includes an example using `localhost:81080` while compose maps `8180:80`.

YunfeiGE18Disclosed Feb 19, 2026bashdockerfilenetwork (pre-auth HTTP request to nginx/CGI endpoint leading to bash command execution)
CVE-2026-1281-Ivanti-EPMM-RCEMaturityPoCVerified exploit

Repository purpose: an operational PoC toolkit for unauthenticated RCE against Ivanti EPMM via CVE-2026-1281 and CVE-2026-1340. The exploit abuses a crafted URL path under /mifs/c/(appstore|aftstore)/fob/ where parameters include st=theValue␠␠ and h=gPath[`<command>`], leveraging Bash arithmetic/command substitution behavior (as described) to execute arbitrary commands pre-auth. Structure and key files: - exploit.py (Python): primary exploit client. Implements (1) endpoint reachability checks for /mifs/c/appstore/fob/ and /mifs/c/aftstore/fob/ (treating 400/403/404 as indicative of presence), (2) payload construction embedding gPath[`cmd`] into the h parameter with a fixed kid=1 and et=1337133713, and (3) exploitation via GET requests to /mifs/c/*store*/fob/3/5/sha256:<params>/<fake_guid>. CLI supports: --check, --test-rce (sleep-based), -x/--execute arbitrary command, --webshell (JSP dropper), and --reverse-shell IP:PORT. - validate.py (Python): automated validation framework that repeatedly builds exploit URLs and runs multiple tests (endpoint accessibility, time-based sleep injection, file-write marker, etc.), logging results and exporting a JSON report. - PAYLOADS.md / REDTEAM_GUIDE.md (Markdown): extensive operator playbook and payload catalog (reverse shells, webshells, persistence, exfiltration, recon/pivoting). These documents include many example commands and internal/external endpoints used for callbacks and testing. - detect_compromise.sh (Bash): blue-team/IR IOC scanner for EPMM hosts. Scans /var/log/httpd/https-access_log for exploit markers (gPath[, theValue, vulnerable paths, and common command tokens), searches /mi and /mi/tomcat for recently modified JSPs and webshell patterns, checks for patch indicators (RPM ivanti-security-update-1761642 and presence of specific .class files), and packages evidence into a tar.gz. Exploit capabilities (as implemented/documented): - Pre-auth network RCE via crafted HTTP GET request path. - RCE confirmation via time delay (sleep). - Arbitrary command execution; optional webshell deployment and reverse-shell callback (operator-supplied LHOST:LPORT). - Post-exploitation guidance includes persistence (SSH keys, cron, systemd), credential harvesting, and data exfiltration (DNS/HTTP), though many of these are documented payloads rather than hardcoded in the exploit core. Notable observables for defenders: - Requests to /mifs/c/(aft|app)store/fob/ with parameters containing st=theValue␠␠ and h=gPath[`...`], often resulting in 404 responses. - Potential dropped artifacts under /mi/tomcat/webapps/ROOT/*.jsp, modified error JSPs (401.jsp/403.jsp/404.jsp/500.jsp), and marker files under /tmp. - Outbound callbacks to operator-controlled IP:PORT (examples use 10.10.14.5:4444) and possible DNS queries to attacker.com for exfiltration.

MehdiLeDeautDisclosed Feb 7, 2026pythonbashnetwork
EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
IvantiEndpoint Manager Mobileapplication
IvantiEndpoint Manager Mobile (Epmm)application

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence3

Every observed campaign linking this CVE to a named adversary.

Associated malware6

Malware families riding this exploit, with evidence and IOCs.

Detection signatures2

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity141

Community discussion across Reddit, Mastodon, and other social sources.