PrimeFaces 5.x Application Expression Language Injection RCE
CVE-2017-1000486 affects Primetek PrimeFaces 5.x. The provided content describes it as a PrimeFaces Application Expression Language Injection issue tied to a weak encryption flaw, which can result in remote code execution. In the supplied context, the vulnerability is associated with inadequate encryption strength in PrimeFaces 5.x that enables an attacker to abuse the affected mechanism and achieve code execution on the target application server.
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.
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.
Mitigation
If you can’t patch tonight, do this now.
Remediation
Patch, then assume compromise.
Exploits
3 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos (1 hidden).
Repository is a standalone Golang exploitation tool named "pwnfaces" targeting PrimeFaces 5.x EL injection (CVE-2017-1000486). Structure: main.go implements CLI parsing (-u/--url, -c/--cmd default whoami, -p/--proxy) and supports bulk targeting via stdin (e.g., cat urls.txt | pwnfaces). src/interface/ui.go prints a banner. src/pwnfaces/exploit.go contains the exploit logic: it first performs a GET request to the provided base URL (ensuring trailing slash) and then crafts an encrypted PrimeFaces dynamic resource payload. The payload is DES-CBC encrypted with a derived key/IV using iterative MD5 (password "primefaces", fixed salt A9 9B C8 32 56 34 E3 03, 19 iterations) and base64-encoded to become the pfdrid parameter. The tool then POSTs form data (pfdrt=sc, ln=primefaces, pfdrid=<encrypted>, cmd=<operator command>) to two candidate endpoints: /javax.faces.resource/dynamiccontent.properties.jsf and /javax.faces.resource/dynamiccontent.properties.xhtml. The injected EL uses ScriptEngineManager + JavaScript to execute OS commands via ProcessBuilder (Windows cmd.exe /C or /bin/sh -c) and prints stdout to the HTTP response. The tool heuristically decides whether it got command output by checking the response body for "<!" (treating HTML as non-output). It supports SOCKS and HTTP proxies and disables TLS certificate verification. A Dockerfile is included to run a Tomcat 7 container with a PrimeFaces showcase WAR (showcase-5.2.war) as a likely vulnerable testbed.
This repository provides a proof-of-concept (PoC) exploit for CVE-2017-1000486, a remote code execution vulnerability in the PrimeFaces JSF framework. The exploit consists of two main scripts: 1. 'exploit.py' (Python): The main exploit script, which crafts and encrypts malicious Java Expression Language (EL) payloads and sends them to a target PrimeFaces endpoint via HTTP POST requests. It can optionally use a known or user-supplied PrimeFaces secret, or attempt to recover the secret using a padding oracle attack. The script supports custom payloads, command execution, and proxy configuration. 2. 'padBuster.pl' (Perl): An auxiliary tool used to perform padding oracle attacks to recover the PrimeFaces secret if it is not known. This script is invoked by 'exploit.py' as needed. The exploit works by abusing the weak encryption and predictable secret in vulnerable PrimeFaces versions, allowing an attacker to inject arbitrary EL expressions. These expressions can be used to execute system commands on the server, retrieve sensitive information, or manipulate server responses. The README.md provides detailed background, payload examples, and usage notes, including techniques to bypass common blacklists and filters. The main attack vector is network-based, targeting web applications that use vulnerable versions of PrimeFaces. The primary fingerprintable endpoint is any HTTP endpoint that processes the 'pfdrid' parameter as part of the PrimeFaces framework. The exploit is a PoC but demonstrates full RCE capability if the target is vulnerable.
This repository provides a working exploit for CVE-2017-1000486, a remote code execution vulnerability in the Primefaces JSF framework (versions <= 5.2.21, 5.3.8, or 6.0). The exploit is implemented in Python (primefaces.py) and leverages an expression language (EL) injection flaw, allowing arbitrary command execution on the target server. The exploit can use either a default encrypted payload (if the default password is in use) or a padding oracle attack to generate a valid payload if the password is unknown. The code supports optional proxying, custom cookies, and can be used in both proof-of-concept and full exploit modes. The repository includes a Dockerfile to set up a vulnerable test environment using Tomcat 7 and the Primefaces 5.2 showcase application. The main attack vector is network-based, targeting the vulnerable Primefaces resource endpoint via HTTP POST requests. The payload achieves command execution by injecting EL that instantiates a JavaScript engine and runs system commands, returning the output in the HTTP response. The exploit is operational and can be used to verify and exploit the vulnerability in real-world or test environments.
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.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
Recent activity
4 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A Primefaces Application Expression Language Injection vulnerability used by FIN13.
A PrimeFaces Expression Language injection vulnerability used for initial access.
A PrimeFaces Expression Language injection vulnerability used to gain initial access via exploitation of a public-facing application.
A remote code execution vulnerability in Primetek Primefaces 5.x caused by a weak encryption flaw.
The version that knows your environment.
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.