☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H 🐛 CWE-502
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-1971

CVE-2025-1971 Insecure Deserialization in Webtoffee
📅 PUBLISHED: 2025-03-22 11:18 UTC 🔄 UPDATED: 2026-08-12 14:53 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.32%
👁️
0.32% probability
8.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 7.2
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: H Privileges Required High
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
7.2
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-1971 is a critical PHP Object Injection vulnerability discovered in the WordPress plugin "Export and Import Users and Customers" by Webtoffee. The flaw exists in all versions up to and including 2.6.2. An authenticated attacker with Administrator-level privileges can inject a malicious PHP object via deserialization of untrusted input from the form_data parameter. While the vulnerable plugin itself does not contain a POP (Property Oriented Programming) chain, the presence of any other plugin or theme with a suitable POP chain on the same WordPress site could allow the attacker to delete arbitrary files, retrieve sensitive data, or execute arbitrary code. The CVSS score is 7.2 (High), and the EPSS score is 0.0%, indicating low exploitation likelihood at this time. No public proof-of-concept or patch details are available.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects a WordPress plugin distributed via the official WordPress plugin repository. Administrators should monitor for updates from the vendor (Webtoffee) and ensure no other plugins or themes with known POP chains are installed. The risk is amplified in environments with many third-party plugins.

CVSS Breakdown & Threat Level

  • CVSS Score: 7.2 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: High (Administrator)
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: High
  • Integrity Impact: High
  • Availability Impact: High

The high privileges required reduce the immediate threat, but the potential for full system compromise via a POP chain makes this a serious concern for WordPress sites with extensive plugin ecosystems.

Deep Dive & Mechanics

The vulnerability resides in the form_data parameter, which is deserialized without proper sanitization. In PHP, unserialize() is called on user-supplied data, allowing an attacker to instantiate arbitrary PHP objects. The attack flow is:

  1. Authentication: The attacker must have Administrator-level access to the WordPress admin panel.
  2. Crafting Payload: The attacker crafts a serialized PHP object that, when deserialized, triggers a POP chain.
  3. Injection: The payload is sent via the form_data parameter in a request to the plugin's import/export functionality.
  4. Exploitation: If a POP chain exists in another plugin or theme (e.g., via __destruct, __wakeup, or __toString magic methods), the attacker can execute arbitrary code, delete files, or exfiltrate data.

The vulnerability is classified as CWE-502 (Deserialization of Untrusted Data). The absence of a POP chain in the vulnerable plugin itself limits the impact, but the risk is real in complex WordPress installations.

Vulnerable vs. Patched Code

No patched version is available. The vulnerable code likely resembles:

// Vulnerable code in export-import-users-customers.php
$form_data = isset($_POST['form_data']) ? $_POST['form_data'] : '';
$data = unserialize(stripslashes($form_data));

A secure implementation would use JSON instead of serialization or validate the input:

// Patched code (hypothetical)
$form_data = isset($_POST['form_data']) ? $_POST['form_data'] : '';
$data = json_decode(stripslashes($form_data), true);
if (json_last_error() !== JSON_ERROR_NONE) {
    // Handle error
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • WordPress site with plugin version <= 2.6.2
  • Administrator credentials
  • A POP chain gadget from another installed plugin/theme (e.g., a plugin with a __destruct method that deletes files)

Exploitation Steps:

  1. Identify POP Chain: Find a class in another plugin with a useful magic method. For example, a class FileDeleter with __destruct that calls unlink($this->file).
  2. Craft Payload: Create a serialized object of that class with controlled properties.
  3. Send Request: Use a tool like curl or Burp Suite to send a POST request to the plugin's admin page.
# Example payload (hypothetical)
curl -X POST http://target/wp-admin/admin.php?page=users-customers-import-export \
  -d 'action=import&form_data=O:10:"FileDeleter":1:{s:4:"file";s:15:"/etc/passwd";}'

Note: No public exploit code is available. The above is a conceptual example.

Blue Team

Detection:

  • Monitor for unusual unserialize() calls in PHP error logs.
  • Look for POST requests to the plugin's admin page with suspicious form_data parameters containing serialized PHP objects (e.g., O:, a:, s: patterns).
  • Use WAF rules to block serialized PHP objects in POST parameters.

Hunting:

  • Search for installed plugins with known POP chains (e.g., wp-cli, wp-super-cache).
  • Review PHP error logs for deserialization warnings.

Indicators of Compromise (IOCs)

  • Network: POST requests to /wp-admin/admin.php?page=users-customers-import-export with form_data containing serialized PHP objects.
  • File System: Unexpected files in /tmp/ or web root (e.g., shell.php).
  • Logs: PHP warnings like unserialize(): Error at offset in error logs.
  • Process: Unusual PHP processes executing system commands.

Detection Engineering

YARA Rule

rule CVE_2025_1971_WordPress_Plugin_Deserialization {
    meta:
        description = "Detects serialized PHP objects in form_data parameter for CVE-2025-1971"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-1971"
    strings:
        $serialized = /form_data=O:\d+:"/
    condition:
        $serialized
}

Sigma Rule

title: CVE-2025-1971 WordPress Plugin Deserialization Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects attempts to exploit PHP Object Injection in Export and Import Users and Customers plugin
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'page=users-customers-import-export'
        cs-uri-query|contains: 'form_data='
        cs-uri-query|re: 'form_data=O:\d+:"'
    condition: selection
falsepositives:
    - Legitimate plugin functionality (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-1971 WordPress Plugin Deserialization Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin.php"; http_uri; content:"page=users-customers-import-export"; http_uri; pcre:"/form_data=O:\d+:\"/"; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin if not essential.
  2. Restrict Administrator access to trusted users only.
  3. Remove any unused plugins/themes that may contain POP chains.

Long-term:

  • Monitor the vendor's website for a patched version (>= 2.6.3).
  • Implement a Web Application Firewall (WAF) rule to block serialized PHP objects.
  • Use a security plugin like Wordfence to detect deserialization attacks.
  • Regularly audit installed plugins for known vulnerabilities.

Workaround:

  • If the plugin must remain active, modify the code to use json_decode() instead of unserialize() (requires developer access).

Valters IT
Securing Digital Frontiers

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"Export and Import Users and Customers"
http.html:"wp-content/plugins/users-customers-import-export-for-wp-woocommerce"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-1971/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.