Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2025-22510

CVE-2025-22510: WC Price History Object Injection Flaw

CVE-2025-22510 is a deserialization of untrusted data vulnerability in WC Price History for Omnibus that enables object injection attacks. This post covers the technical details, affected versions, and mitigation steps.

Published:

CVE-2025-22510 Overview

CVE-2025-22510 is a PHP Object Injection vulnerability in the WC Price History for Omnibus WordPress plugin maintained by kkarpieszuk. The flaw stems from deserialization of untrusted data [CWE-502] and affects all plugin versions up to and including 2.1.4. An authenticated attacker with high privileges can inject crafted serialized PHP objects, triggering magic methods that lead to code execution, file manipulation, or data tampering when a suitable gadget chain is present. The vulnerability impacts confidentiality, integrity, and availability of the affected WooCommerce store.

Critical Impact

Successful exploitation enables object injection on the WordPress host, which can escalate to remote code execution, sensitive data disclosure, or destructive actions against the WooCommerce environment.

Affected Products

  • kkarpieszuk WC Price History for Omnibus plugin versions up to and including 2.1.4
  • WordPress sites running WooCommerce with the wc-price-history plugin enabled
  • Installations that have not upgraded beyond version 2.1.4

Discovery Timeline

  • 2025-01-09 - CVE-2025-22510 published to NVD
  • 2026-04-23 - Last updated in NVD database

Technical Details for CVE-2025-22510

Vulnerability Analysis

The plugin processes serialized PHP input without verifying its origin or integrity. PHP's unserialize() function reconstructs objects from string input and invokes magic methods such as __wakeup(), __destruct(), and __toString() during the process. When attacker-controlled data reaches this function, an adversary can instantiate arbitrary classes present in the WordPress runtime, including WooCommerce and other loaded plugins.

The attack succeeds because no allow-list or signature mechanism gates which classes can be deserialized. Combined with available POP (Property-Oriented Programming) gadgets in the WordPress ecosystem, object injection often results in file writes, SQL injection, or arbitrary code execution. The vulnerability requires authenticated access with high privileges, but does not require user interaction.

Root Cause

The root cause is unsafe use of unserialize() against input that is influenced by an authenticated user. The plugin trusts serialized data passed through plugin-specific request handlers and stores or processes it without validation. Refer to the Patchstack Vulnerability Report for the specific code path.

Attack Vector

The attack is performed over the network against the WordPress admin or plugin endpoints. The attacker, authenticated with high privileges, submits a crafted serialized payload that the plugin deserializes. Triggered magic methods then execute the gadget chain. No physical or local access is required, and no victim interaction is needed once the request is delivered.

Detection Methods for CVE-2025-22510

Indicators of Compromise

  • HTTP requests to wc-price-history plugin endpoints containing serialized PHP markers such as O:, a:, or s: patterns in parameters
  • Unexpected PHP errors referencing unserialize(), __wakeup, or __destruct in WordPress or PHP-FPM logs
  • Creation of new admin users, modified WordPress options, or unexpected files in wp-content/uploads shortly after plugin interaction
  • Outbound network connections initiated by the WordPress PHP process to unfamiliar hosts

Detection Strategies

  • Inspect web access logs for POST or GET requests to wc-price-history routes containing serialized object signatures
  • Enable WordPress audit logging to record privileged user actions on plugin settings and capture payload contents
  • Compare installed plugin version against 2.1.4 to identify vulnerable installations across the estate

Monitoring Recommendations

  • Forward WordPress, PHP-FPM, and web server logs to a centralized analytics platform for correlation and retention
  • Alert on file integrity changes within wp-content/plugins/wc-price-history and broader wp-content directories
  • Monitor for new WordPress administrator accounts, role changes, and modifications to wp_options entries

How to Mitigate CVE-2025-22510

Immediate Actions Required

  • Identify all WordPress instances running WC Price History for Omnibus and confirm the installed version
  • Update the plugin to a version released after 2.1.4 that addresses the deserialization flaw
  • Audit administrator and shop manager accounts, rotating credentials and removing unused privileged users
  • Review recent plugin-related requests in web logs for signs of exploitation attempts

Patch Information

Upgrade wc-price-history to a fixed release later than 2.1.4 as indicated in the Patchstack Vulnerability Report. Verify the upgrade in a staging environment before applying to production WooCommerce sites.

Workarounds

  • Disable and remove the wc-price-history plugin until a fixed version can be deployed
  • Restrict administrative WordPress access to trusted networks via IP allow-listing or VPN
  • Deploy a web application firewall rule that blocks request parameters containing PHP serialized object patterns targeting plugin endpoints
  • Enforce least privilege so that only essential users hold high-privilege WordPress roles

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.