Skip to main content
Mallory
CriticalCISA KEVExploited in the wildPublic exploit

Arbitrary File Upload in WordPress File Manager Plugin (wp-file-manager) < 6.9

IdentifiersCVE-2020-25213CWE-434· Unrestricted Upload of File with…

CVE-2020-25213 is a critical vulnerability in the WordPress File Manager (wp-file-manager) plugin prior to version 6.9. The vulnerability arises from the plugin renaming an unsafe example elFinder connector file to have a .php extension, which allows remote attackers to upload and execute arbitrary PHP code. Attackers can leverage elFinder commands (upload, mkfile, put) to write malicious PHP files into the wp-content/plugins/wp-file-manager/lib/files/ directory, leading to full remote code execution on the affected WordPress site. This vulnerability was actively exploited in the wild during August and September 2020.

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 attackers to upload and execute arbitrary PHP code on the server, resulting in full compromise of the affected WordPress site. Attackers can gain remote code execution, install web shells, exfiltrate data, deface sites, or pivot further into the hosting environment. The vulnerability affected hundreds of thousands of sites and was widely exploited.

Mitigation

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

If immediate upgrade is not possible, disable or remove the wp-file-manager plugin. Restrict access to the wp-content/plugins/wp-file-manager/lib/files/ directory via web server configuration to prevent execution of PHP files. Monitor for suspicious activity and unauthorized file uploads. Apply least privilege principles to WordPress file permissions.

Remediation

Patch, then assume compromise.

Upgrade the File Manager (wp-file-manager) plugin to version 6.9 or later, where the vulnerable example connector file is removed or properly secured. Ensure all WordPress plugins are kept up to date and remove any unused or unnecessary plugins. Review server files for unauthorized PHP scripts and web shells if compromise is suspected.
PUBLIC EXPLOITS

Exploits

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

VALID 4 / 8 TOTALView more in app
wp-file-manager-exploit-CVE-2020-25213-with-ZerologonMaturityPoCVerified exploit

This repository is a mixed offensive lab/project bundle rather than a single cohesive exploit. It contains three major components: (1) a Python proof-of-concept exploit for CVE-2020-25213 against the WordPress wp-file-manager plugin, (2) Zerologon exploitation scripts for CVE-2020-1472 targeting Windows domain controllers, and (3) a full copy of the Chisel tunneling utility used as supporting infrastructure for pivoting/tunneling. The most direct exploit code is Python-exploit-CVE-2020-25213/exploit.py. That script takes a base URL and a command, posts a handcrafted multipart/form-data request to /wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php, uploads a PHP file named shell<random>.php containing shell_exec($_REQUEST['cmd']), and then triggers it via /wp-content/plugins/wp-file-manager/lib/files/shell<random>.php?cmd=<command>. This is a real unauthenticated arbitrary file upload leading to RCE against wp-file-manager 6.0-6.9. It is operational but simple: payload is hardcoded, no cleanup, no target validation, and minimal error handling. The zerologon/ directory contains two Python scripts derived from public Zerologon research. set_empty_pw.py repeatedly attempts Netlogon authentication with all-zero challenge/credential values over MSRPC (ncacn_ip_tcp) until successful, then issues NetrServerPasswordSet2 to set the target DC machine account password to an empty string. reinstall_original_pw.py performs a similar authentication bypass and uses a custom NetrServerPasswordSet RPC structure to restore a supplied original NT hash. These are exploitation scripts, not scanners, and enable severe post-exploitation outcomes when used against an unpatched domain controller. The chisel/ directory is not exploit code for a CVE; it is a legitimate Go-based TCP/UDP-over-HTTP tunneling tool with client/server modes, WebSocket transport, SSH-based encryption/authentication, optional SOCKS5, reverse tunneling, TLS/mTLS, and proxy support. In the context of this repository, it appears to be included as an operator utility for pivoting or exposing internal services during the broader attack chain described in the top-level README. Repository structure therefore suggests a coursework/demo attack chain: compromise a vulnerable WordPress client via CVE-2020-25213, use Chisel for tunneling/pivoting, and exploit a vulnerable Windows Server 2019 domain controller via Zerologon. The included code is actionable and offensive, with the WordPress exploit providing immediate command execution and the Zerologon scripts enabling domain-level compromise under the required vulnerable conditions.

KienHoSDDisclosed May 10, 2026pythongowebnetwork
Python-exploit-CVE-2020-25213MaturityPoCVerified exploit

This repository contains a Python exploit (exploit.py) targeting CVE-2020-25213, a critical vulnerability in the WordPress File Manager plugin (versions 6.0-6.9). The exploit is unauthenticated and allows remote attackers to upload and execute arbitrary PHP code on the target server. The exploit works by uploading a PHP webshell (shell.php) to the plugin's files directory using a crafted multipart/form-data POST request to the vulnerable elFinder connector endpoint. Once uploaded, the webshell can be accessed to execute arbitrary system commands via the 'cmd' parameter. The repository includes a README.md with usage instructions and context. The main entry point is exploit.py, which is a standalone Python script requiring the target URL and a command to execute. The exploit is operational and was reportedly used in the wild. No detection or fake code is present; the exploit is functional and directly weaponizes the vulnerability.

BLY-CoderDisclosed Jan 22, 2023pythonnetwork
Python-CVE-2020-25213MaturityPoCVerified exploit

This repository contains a Python exploit script (exploit.py) targeting CVE-2020-25213, a vulnerability in the WP File Manager plugin for WordPress (versions before 6.9). The exploit allows remote attackers to upload arbitrary files (such as PHP web shells) to the server by abusing an unsafe example connector file that is accessible and executable. The script provides options to check if a target is vulnerable and to upload a file to the vulnerable endpoint. The main code file is exploit.py, which uses the requests library to interact with the target over HTTP. The README.md provides usage instructions and context. The exploit is operational, requiring the attacker to supply a file to upload. The main fingerprintable endpoints are the plugin's readme.txt (for version checking) and the connector.minimal.php file (for exploitation). The repository is structured simply, with a single exploit script, a requirements file, and documentation.

E1texDisclosed Aug 2, 2023pythonnetwork
wp-file-manager-CVE-2020-25213MaturityPoCVerified exploit

This repository contains a Bash script exploit (wp-file-manager-exploit.sh) targeting CVE-2020-25213, a critical vulnerability in the WordPress wp-file-manager plugin (versions 6.0 to 6.8). The exploit leverages an unauthenticated file upload flaw in the plugin's 'connector.minimal.php' endpoint, allowing attackers to upload arbitrary files (such as PHP web shells) to the server. The script provides options to check for the presence and version of the vulnerable plugin, verify if the endpoint is exploitable, and upload a user-supplied file. The README.md provides detailed usage instructions, references, and background on the vulnerability. The main attack vector is network-based, targeting the '/wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php' endpoint on WordPress installations. The exploit is operational, requiring the attacker to supply a payload file, and can result in full remote code execution on vulnerable targets.

mansoorr123Disclosed Oct 10, 2020bashnetwork
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
FilemanagerproFile Managerapplication
Webdesi9File Managerapplication

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 evidence

Every observed campaign linking this CVE to a named adversary.

Associated malware1

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.