CVE-2025-10167

6.4 MEDIUM

📋 TL;DR

This stored XSS vulnerability in the Stock History & Reports Manager for WooCommerce WordPress plugin allows authenticated attackers with contributor-level access or higher to inject malicious scripts into website pages. These scripts execute whenever users visit the compromised pages, potentially stealing credentials, session cookies, or performing unauthorized actions. WordPress sites using vulnerable versions of this plugin are affected.

💻 Affected Systems

Products:
  • Stock History & Reports Manager for WooCommerce WordPress plugin
Versions: All versions up to and including 2.2.1
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress with WooCommerce and the vulnerable plugin installed. Contributor-level authentication or higher is needed for exploitation.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal administrator credentials, hijack user sessions, deface websites, redirect users to malicious sites, or perform actions on behalf of authenticated users, potentially leading to complete site compromise.

🟠

Likely Case

Attackers with contributor access inject malicious scripts to steal session cookies or credentials from users visiting affected pages, potentially gaining higher privileges or accessing sensitive data.

🟢

If Mitigated

With proper input validation and output escaping, malicious scripts are neutralized before execution, preventing any client-side code injection.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires authenticated access (contributor role or higher) and knowledge of WordPress shortcode usage. No public exploit code is currently available.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version 2.2.2 or later

Vendor Advisory: https://wordpress.org/plugins/stock-snapshot-for-woocommerce

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'Stock History & Reports Manager for WooCommerce'. 4. Click 'Update Now' if available. 5. Alternatively, download version 2.2.2+ from WordPress repository and manually update.

🔧 Temporary Workarounds

Remove Contributor Access

all

Temporarily restrict contributor-level user roles from accessing the site until patching is complete.

Disable Plugin

all

Deactivate the vulnerable plugin if functionality is not critical.

🧯 If You Can't Patch

  • Implement strict user role management and limit contributor accounts
  • Deploy web application firewall (WAF) with XSS protection rules

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for 'Stock History & Reports Manager for WooCommerce' version 2.2.1 or lower.

Check Version:

wp plugin list --name='stock-snapshot-for-woocommerce' --field=version (WP-CLI)

Verify Fix Applied:

Confirm plugin version is 2.2.2 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unusual shortcode usage in post/page edits
  • Multiple failed authentication attempts followed by successful contributor login
  • Suspicious script tags in content containing 'alg_wc_stock_snapshot_restocked'

Network Indicators:

  • Unexpected outbound connections from WordPress site after page visits
  • Suspicious JavaScript payloads in HTTP requests

SIEM Query:

source="wordpress.log" AND ("alg_wc_stock_snapshot_restocked" AND ("script" OR "onerror" OR "javascript:"))

🔗 References

📤 Share & Export