Skip to main content
Meet us at Black Hat USA 2026— Las Vegas, August 1–6Book a Meeting
Mallory
CriticalCISA KEVExploited in the wildPublic exploit

Unauthenticated RCE in Ivanti Endpoint Manager Mobile In-House App Distribution

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 on-premises Ivanti Endpoint Manager Mobile (EPMM) affecting the In-House App Distribution component. The flaw resides in legacy bash-based Apache RewriteMap handling, specifically the /mi/bin/map-appstore-url script used to process requests for the /mifs/c/appstore/fob/ endpoint. According to the provided content, attacker-controlled URL parameters are passed into the bash script in an unsafe manner, enabling exploitation via bash arithmetic expansion and variable indirection. A remote attacker can send a crafted HTTP GET request to the vulnerable endpoint and achieve code execution on the EPMM appliance without authentication. Ivanti disclosed the issue on 2026-01-29, and the content states it was actively exploited in the wild prior to public disclosure.

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 allows unauthenticated remote code execution on the EPMM appliance and can result in full system compromise. The provided content indicates attackers used the flaw for reconnaissance, reverse shells, malware delivery, JSP web shell deployment, dormant backdoors, cryptominer installation, and log clearing. Because EPMM is a mobile device management platform, compromise can expose administrator accounts, LDAP/AD integration data, certificates, device management policies, and personally identifiable information accessible through the platform. It can also enable attackers to alter MDM policies, push malicious configurations or applications to managed devices, and pivot through connected infrastructure such as Ivanti Sentry and internal enterprise services.

Mitigation

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

Immediately restrict or remove internet exposure of vulnerable EPMM instances and apply vendor patches. Review off-box Apache access logs, especially /var/log/httpd/https-access_log, for suspicious requests to /mifs/c/appstore/fob/ and related patterns identified by Ivanti/NCSC guidance. Because attackers may clear local logs, rely on SIEM or centralized logging where available. Hunt for post-exploitation artifacts such as JSP web shells (including 401.jsp, 403.jsp, and 1.jsp), unexpected WAR/JAR files, unusual outbound connections, reverse shells, dormant backdoors, and other persistence on the appliance. Treat previously internet-exposed systems as potentially compromised even after patching, and assess adjacent systems reachable through EPMM or Sentry for lateral movement. Rotate administrative credentials and review authentication, policy, and certificate changes for unauthorized modifications.

Remediation

Patch, then assume compromise.

Apply Ivanti’s fixed EPMM releases. The content states Ivanti initially issued January 2026 RPM hotfixes for affected branches and later delivered permanent fixes in full product updates, including EPMM 12.8.0.0 where the vulnerable bash RewriteMap scripts were replaced with Java classes. Later cumulative fixed releases also include remediation for this issue, including 12.6.1.1, 12.7.0.1, and 12.8.0.1. If compromise is suspected, Ivanti does not recommend attempting to clean the appliance in place; instead restore from a known-good backup or rebuild from a known-clean image, apply fixes before re-exposure, and rotate administrative credentials. If the optional 'Store keys on Core' feature was enabled, revoke and regenerate affected user certificates.
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 malware9

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 activity134

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