CVE-2014-3120 is a remote code execution vulnerability in Elasticsearch before 1.2.0 caused by an insecure default configuration that enables dynamic scripting through the MVEL engine. An attacker can supply a crafted script expression via the search API, including the source parameter or script_fields in a _search request, and Elasticsearch evaluates the expression without an effective sandbox. Because MVEL expressions can reach Java functionality, a remote attacker can execute arbitrary Java code and operating-system commands in the context of the Elasticsearch process. The issue is fundamentally an expression or code injection flaw exposed through Elasticsearch's scripting feature and made reachable by default in affected versions.
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.
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
If you can’t patch tonight, do this now.
Patch, then assume compromise.
2 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos (2 hidden).
This is a deliberately vulnerable training environment with a documented exploit, rather than a standalone automated exploit tool. The two app READMEs contain equivalent English and Chinese HTTP walkthroughs: create an indexed document, then POST to /_search?pretty with an MVEL script in script_fields. Java Runtime.exec runs the hardcoded command id, and Scanner returns stdout in the search result. No reverse shell, persistence, credential theft, or container escape payload is supplied, despite the CTF metadata describing a shell as the challenge objective. The documented command-execution payload supports the OPERATIONAL classification, but it was not executed or independently validated here. The 33 files comprise CTF metadata; publishing and validation workflows; root documentation and licensing; the vendored app walkthrough and minimal Compose configuration; an Elasticsearch image Dockerfile, Bash entrypoint, and logging configuration under base/; a version-check script; the authoritative isoloom.yml; and generated deployment artifacts under .isoloom/. These artifacts support Docker, Kubernetes, Docker-hosting Vagrant and Proxmox VMs, and six cloud providers: AWS, Azure, DigitalOcean, GCP, Linode, and OCI. The code-file count of 15 includes seven Terraform files, one Ruby Vagrantfile, six shell scripts, and one Dockerfile; declarative YAML/JSON files and README-embedded payloads are excluded from that count. MVEL is present only in documentation. Isoloom is deployment tooling, not an exploit framework. Checks verify HTTP availability, the reported Elasticsearch version, and blocked internet access; they do not exercise the RCE or prove exploitability. Docker uses a route-removal sidecar, while Kubernetes uses egress NetworkPolicies whose enforcement depends on the cluster networking implementation. Local generated deployment defaults to loopback publishing, cloud firewalls restrict SSH and ports 9200/9300 to an operator-supplied CIDR, and Kubernetes creates a LoadBalancer with ingress allowed to those ports from any IPv4 source. The minimal vendored app Compose file lacks the generated isolation controls. Command execution occurs inside the vulnerable Elasticsearch container, not inherently on its host. Network observables are target API paths, private lab addresses, isolation probes, and software/provisioning download endpoints; no hardcoded attacker callback is present. Provisioning contains legitimate cleanup commands and Docker installer execution, which are not evidence of a fake exploit. The upstream Vulhub source is documented at commit 8fd63916f7a8711e2e01dda0d27237e4d6175d38, but the original analyzed repository URL, its analyzed Git reference, and archive byte size were not supplied; empty strings and zero represent unavailable repository metadata.
This repository contains a single Metasploit module (script_mvel_rce.rb) that exploits CVE-2014-3120, a remote code execution vulnerability in ElasticSearch versions prior to 1.2.0. The exploit leverages the REST API's dynamic scripting feature, which allows unauthenticated attackers to execute arbitrary Java code via specially crafted search requests. The module determines the target's OS, identifies a writable directory, uploads a Java JAR payload (containing a Metasploit shell or similar), and executes it using Java reflection. The exploit is weaponized, allowing for customizable payloads and full remote code execution. The main network endpoint targeted is the ElasticSearch REST API (default port 9200, path /_search). The module is written in Ruby and is designed to be used within the Metasploit framework.
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
5 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A remote code execution vulnerability in Elasticsearch's MVEL scripting engine that allows arbitrary code execution via `script_fields` because MVEL executed attacker-supplied code without an effective sandbox.
A remote code execution vulnerability in Elasticsearch 1.2 via MVEL scripting, allowing attackers to execute arbitrary code.
An Elasticsearch vulnerability affecting versions before 1.2, explicitly identified as one of the exploits included in the WatchDog networkmanager binary.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.