Severity by source
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Network-reachable AJAX endpoint with low complexity and no interaction, but requires existing admin access (PR:H); resulting webshell yields full C/I/A impact without scope change.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
Lifecycle Timeline
2DescriptionCVE.org
The Post Export Import with Media plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 1.13.1 via the import_media_file_secure function. This is due to insufficient file extension validation caused by a trailing-dot filename bypass, where the extension allow-list check in ajax_import_media_start() uses pathinfo() on the raw ZIP entry name (e.g., 'shell.php.'), which returns an empty string for the extension, causing the allow-list guard to be skipped and the file to be extracted to a temporary location, after which import_media_file_secure() copies it into the WordPress uploads directory without re-validating the extension. This makes it possible for authenticated attackers, with administrator-level access and above, to upload files that may be executable, which makes remote code execution possible.
AnalysisAI
Remote code execution in the Post Export Import with Media WordPress plugin (all versions ≤ 1.13.1) is possible because a trailing-dot filename bypass (e.g. 'shell.php.') defeats the extension allow-list in ajax_import_media_start(), letting an administrator-level user smuggle an executable PHP file into the uploads directory during a media import. Reported by Wordfence, the flaw carries CVSS 7.2 and has no public exploit identified at time of analysis; exploitation requires existing administrator (PR:H) access, making it primarily a hardening/defense-in-depth bypass rather than a mass-exploitable entry point.
Technical ContextAI
The vulnerability lives in the plugin's media-import path (class-media-handler.php). When a ZIP archive is imported, ajax_import_media_start() validates each entry's extension against an allow-list using PHP's pathinfo(). For a raw ZIP entry name like 'shell.php.' (a trailing dot), pathinfo() returns an empty string for PATHINFO_EXTENSION, so the guard treats the entry as having no disallowed extension and skips the check. The entry is extracted to a temporary location and then import_media_file_secure() copies it into the WordPress uploads directory without re-validating the extension. This is a classic CWE-434 (Unrestricted Upload of File with Dangerous Type), where reliance on string-parsing of an attacker-controlled filename creates a parser-differential: PHP's pathinfo() and the underlying filesystem/webserver disagree on the effective extension, and on many configurations 'shell.php.' is served/executed as PHP. The affected component is the wpazleen post_export_import_with_media plugin per CPE cpe:2.3:a:wpazleen:post_export_import_with_media:*.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - a WordPress plugin trac changeset (3600506, https://plugins.trac.wordpress.org/changeset?reponame=&old=3600506%40post-export-import-with-media&new=3600506%40post-export-import-with-media) indicates the code was corrected, but no tagged patched release above 1.13.1 is confirmed in the supplied data, so verify the fixed version against the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/42f94f80-6157-4778-ad69-184943134fd2?source=cve) and update as soon as a release above 1.13.1 is published. As compensating controls until a confirmed patch: restrict who holds WordPress administrator accounts and enforce MFA on them to shrink the PR:H attacker pool; deactivate the Post Export Import with Media plugin if the media-import feature is not in active use (trade-off: import/export workflows stop working); and add a webserver rule denying PHP execution within wp-content/uploads (e.g. an .htaccess/nginx location block), which blocks execution of any smuggled .php file with the side effect of breaking any legitimate plugin that intentionally executes PHP from uploads (rare). Also set DISALLOW_FILE_EDIT to reduce the blast radius of a compromised admin.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42785
GHSA-mxq7-wpp5-2fc9