Skip to main content
Mallory
CriticalCISA KEVExploited in the wildPublic exploit

PrimeFaces 5.x Application Expression Language Injection RCE

IdentifiersCVE-2017-1000486CWE-326· Inadequate Encryption Strength

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.

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 can allow a remote attacker to execute arbitrary code on the affected system. In practical terms, this can provide initial access to the underlying Java application server, enabling deployment of web shells or additional tooling, execution of system commands, and follow-on compromise of adjacent systems and application data.

Mitigation

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

If immediate patching is not possible, restrict network access to the affected PrimeFaces application, especially from untrusted networks; monitor for suspicious requests and post-exploitation artifacts; and consider disabling or limiting features that rely on the vulnerable encryption mechanism until the upgrade can be completed.

Remediation

Patch, then assume compromise.

Upgrade Primetek PrimeFaces to version 6.0 or later, which the provided advisory states addresses the weak encryption flaw.
PUBLIC EXPLOITS

Exploits

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

VALID 3 / 4 TOTALView more in app
pwnfacesMaturityPoCVerified exploit

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.

0xdsmDisclosed Sep 9, 2022godockerfilenetwork
CVE-2017-1000486MaturityPoCVerified exploit

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.

PasteaDisclosed Aug 5, 2021pythonperlnetwork
CVE-2017-1000486MaturityPoCVerified exploit

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.

pimpsDisclosed Sep 3, 2018pythonnetwork
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
PrimetekPrimefacesapplication

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 evidence1

Every observed campaign linking this CVE to a named adversary.

Associated malware

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 activity

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