CVE-2025-0855

9.8 CRITICAL

📋 TL;DR

The PGS Core WordPress plugin is vulnerable to PHP Object Injection via insecure deserialization in the 'import_header' function, allowing unauthenticated attackers to inject malicious PHP objects. This affects all versions up to 5.8.0. While no known POP chain exists in the plugin itself, if other plugins or themes provide one, attackers could delete files, steal data, or execute code.

💻 Affected Systems

Products:
  • PGS Core WordPress Plugin
Versions: All versions up to and including 5.8.0
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with PGS Core plugin. Risk increases if other plugins/themes with POP chains are installed.

⚠️ 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

Remote code execution leading to complete system compromise if a suitable POP chain exists from other installed plugins/themes.

🟠

Likely Case

Denial of service or limited data exposure due to lack of known POP chain in the vulnerable plugin alone.

🟢

If Mitigated

Minimal impact if proper input validation and output encoding are implemented, and vulnerable plugin is isolated.

🌐 Internet-Facing: HIGH - Unauthenticated remote exploitation possible on publicly accessible WordPress sites.
🏢 Internal Only: MEDIUM - Still exploitable internally but requires attacker access to internal network.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires crafting specific serialized payloads. No known POP chain in vulnerable plugin reduces immediate RCE risk.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 5.8.1 or later

Vendor Advisory: https://docs.potenzaglobalsolutions.com/docs/ciyashop-wp/changelog/

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find PGS Core plugin. 4. Click 'Update Now' if update available. 5. Alternatively, download latest version from WordPress repository and manually update.

🔧 Temporary Workarounds

Disable vulnerable function via plugin filter

all

Add filter to prevent execution of vulnerable import_header function

Add to theme's functions.php: add_filter('pgs_core_import_header', '__return_false');

Web Application Firewall rule

all

Block requests containing serialized PHP object patterns

WAF specific - create rule to block requests with patterns like O:[0-9]+:"[^"]+":
ModSecurity: SecRule ARGS "@rx O:[0-9]+:\"[^\"]+\":" "id:1001,phase:2,deny"

🧯 If You Can't Patch

  • Temporarily deactivate PGS Core plugin until patched
  • Implement strict network access controls to limit exposure to trusted IPs only

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → PGS Core version. If version ≤5.8.0, vulnerable.

Check Version:

wp plugin list --name=pgs-core --field=version (if WP-CLI installed)

Verify Fix Applied:

Verify PGS Core plugin version is 5.8.1 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • POST requests to WordPress with serialized data patterns
  • PHP warnings about unserialize() in error logs
  • Unexpected plugin activation/deactivation events

Network Indicators:

  • HTTP POST requests containing serialized object patterns (O:8:"stdClass":)
  • Requests to WordPress admin-ajax.php or admin-post.php with suspicious parameters

SIEM Query:

source="web_logs" AND (uri_path="*admin-ajax.php*" OR uri_path="*admin-post.php*") AND request_body MATCHES "O:[0-9]+:\"[^\"]+\":"

🔗 References

📤 Share & Export