☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Welcart logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.2 CVSS:3.1/AV:N/AC:L/PR:N/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-54012

CVE-2025-54012 Insecure Deserialization in Welcart
📅 PUBLISHED: 2025-08-20 08:15 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.16%
👁️
0.16% probability
4.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.
Country: Estonia License: Freemium
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: N Privileges Required None
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-54012 is a critical Deserialization of Untrusted Data vulnerability (CWE-502) affecting the Welcart e-Commerce plugin (usc-e-shop) for WordPress, versions up to and including 2.11.16. This vulnerability allows an unauthenticated attacker to perform Object Injection by supplying a malicious serialized payload to an unsuspecting deserialization call within the plugin. Successful exploitation can lead to remote code execution (RCE), full site compromise, data theft, and lateral movement within the hosting environment. The vulnerability is currently unpatched, and no public exploit code or proof-of-concept (PoC) is available at this time. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the technical severity (CVSS 7.2) demands immediate attention.

⚡ 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 resides in a WordPress plugin distributed via the official WordPress plugin repository and third-party marketplaces. The plugin is a commercial e-commerce solution, meaning its source code is not publicly audited. The lack of a patch and the closed-source nature of the plugin create a significant supply chain risk. Organizations using Welcart e-Commerce must treat this as a zero-day until a fix is released.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Base Score: 7.2 (High)
  • Attack Vector: Network (AV:N) – Exploitable remotely.
  • Attack Complexity: Low (AC:L) – No special conditions required.
  • Privileges Required: None (PR:N) – No authentication needed.
  • User Interaction: None (UI:N) – No victim action required.
  • Scope: Unchanged (S:U) – Vulnerability cannot affect other components.
  • Confidentiality Impact: High (C:H) – Full data access possible.
  • Integrity Impact: High (I:H) – Full control over data and execution.
  • Availability Impact: High (A:H) – Potential for denial of service or full system takeover.

Threat Level: Critical. The combination of remote, unauthenticated exploitation with no user interaction and high impact makes this a top-priority vulnerability for any organization using the affected plugin.

Deep Dive & Mechanics

The vulnerability stems from the use of PHP’s unserialize() function on user-supplied input without proper sanitization or validation. In the Welcart e-Commerce plugin, a parameter (likely a cookie, POST variable, or request parameter) is passed directly to unserialize(). This allows an attacker to inject arbitrary PHP objects.

How Object Injection Works:

  1. The attacker crafts a serialized PHP object that, when deserialized, triggers magic methods like __wakeup(), __destruct(), or __toString().
  2. These magic methods can be chained to execute arbitrary code, read/write files, or perform SQL injection.
  3. Because the input is not validated, the attacker can control the class and properties of the deserialized object.

Affected Component: The vulnerability is specifically in the usc-e-shop plugin’s handling of session or cart data. The exact vulnerable function is not publicly disclosed, but it is likely in a file that processes serialized data from cookies or POST requests.

WordPress Ecosystem Context: As a WordPress plugin, this vulnerability can be exploited against any site running the vulnerable version. The attack surface is broad, as WordPress is widely deployed.

Vulnerable vs. Patched Code

Since no patch is available, we can only infer the vulnerable pattern. A typical vulnerable code snippet might look like:

// Vulnerable code (hypothetical)
$data = $_POST['cart_data'];
$cart = unserialize($data);

A patched version would use a safe alternative, such as JSON:

// Patched code (hypothetical)
$data = $_POST['cart_data'];
$cart = json_decode($data, true);

Or implement a whitelist of allowed classes:

// Patched code with allowed classes
$data = $_POST['cart_data'];
$cart = unserialize($data, ['allowed_classes' => ['Cart', 'Product']]);

Until an official patch is released, the only mitigation is to disable the plugin or implement a Web Application Firewall (WAF) rule to block serialized PHP objects.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • A WordPress instance with Welcart e-Commerce <= 2.11.16.
  • Knowledge of the vulnerable parameter (e.g., cart_data, session_id, or a cookie).

Exploitation Steps:

  1. Identify the vulnerable endpoint: Use a proxy (Burp Suite) to intercept requests and look for parameters that contain serialized PHP data (e.g., a:1:{s:4:"test";s:4:"data";}).
  2. Craft a malicious payload: Use a PHP gadget chain (e.g., from the Monolog or SwiftMailer libraries if present) to execute code. Example using a generic gadget:
    class Evil {
        public $cmd = 'id';
        public function __destruct() {
            system($this->cmd);
        }
    }
    $payload = serialize(new Evil());
    echo urlencode($payload);
    
  3. Send the payload: Inject the serialized object into the vulnerable parameter.
  4. Verify execution: Check for command output in the response or via out-of-band (OOB) techniques (e.g., DNS exfiltration).

No public exploit code is available. The above is a generic example.

Blue Team (Defensive)

Detection:

  • Monitor for serialized PHP objects in HTTP requests (e.g., patterns like O:\d+:, a:\d+:{, s:\d+:).
  • Look for unexpected __destruct, __wakeup, or __toString calls in PHP error logs.
  • Use a WAF to block requests containing O:\d+: (object serialization) in parameters.

Hunting:

  • Search for unserialize calls in the plugin’s codebase (if source is available).
  • Check for anomalous outbound connections from the web server.

Indicators of Compromise (IOCs)

  • Network:
    • HTTP requests containing serialized PHP objects (e.g., O:4:"Evil":1:{s:3:"cmd";s:2:"id";}).
    • Outbound connections to unknown IPs or domains (C2).
  • File System:
    • Unexpected files in wp-content/uploads/ or /tmp/ (e.g., .php files).
    • Modified .htaccess or wp-config.php.
  • Process:
    • Unusual PHP processes running system commands.
  • Logs:
    • PHP error logs showing unserialize() errors or class not found warnings.
    • Web server logs with O:\d+: patterns in request bodies.

Detection Engineering

YARA Rule

rule CVE_2025_54012_Deserialization {
    meta:
        description = "Detects serialized PHP objects in HTTP requests targeting Welcart e-Commerce"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-54012"
    strings:
        $serialized = /O:\d+:"/
        $welcart = /usc-e-shop|welcart/i
    condition:
        $serialized and $welcart
}

Sigma Rule

title: CVE-2025-54012 - Welcart e-Commerce Deserialization Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP requests containing serialized PHP objects targeting Welcart e-Commerce
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'usc-e-shop'
        cs-body|re: 'O:\d+:"'
    condition: selection
falsepositives:
    - Legitimate serialized data from other plugins (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-54012 - Welcart e-Commerce Deserialization Attempt"; flow:to_server,established; content:"usc-e-shop"; http_uri; pcre:"/O:\d+:\"/"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is released.
  2. Implement a WAF rule to block serialized PHP objects (e.g., block requests containing O:\d+:).
  3. Monitor logs for exploitation attempts.

Long-term Fix:

  • Apply the official patch once released by Welcart.
  • Replace unserialize() with json_decode() or use allowed_classes parameter.
  • Regularly update all WordPress plugins and core.

Workaround:

  • If the plugin cannot be disabled, restrict access to the vulnerable endpoint via .htaccess or a reverse proxy.

Valters IT – Securing Digital Frontiers

💣 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-54012/ · 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.