CVE-2024-1772

8.8 HIGH

📋 TL;DR

The Play.ht WordPress plugin is vulnerable to PHP object injection via deserialization of untrusted input in the play_podcast_data post meta. This allows authenticated attackers with contributor-level access or higher to inject PHP objects. While no known POP chain exists in the plugin itself, if another plugin or theme provides one, attackers could delete files, steal data, or execute code.

💻 Affected Systems

Products:
  • Play.ht – Make Your Blog Posts Accessible With Text to Speech Audio WordPress plugin
Versions: All versions up to and including 3.6.4
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with the vulnerable plugin enabled. Contributor-level authentication is required for exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

If a POP chain exists via another plugin/theme, attackers could achieve remote code execution, delete critical files, or exfiltrate sensitive data from the WordPress site.

🟠

Likely Case

Attackers with contributor access can inject PHP objects, potentially causing application instability or limited data manipulation, but full exploitation requires a compatible POP chain from other components.

🟢

If Mitigated

With proper access controls limiting contributor accounts and monitoring, impact is reduced to potential application errors or limited data corruption.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires contributor-level WordPress credentials and depends on availability of POP chains from other installed plugins/themes.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions after 3.6.4

Vendor Advisory: https://plugins.trac.wordpress.org/browser/play-ht/trunk/includes/class-ajax-handler.php#L138

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'Play.ht – Make Your Blog Posts Accessible With Text to Speech Audio'. 4. Click 'Update Now' if available, or manually update to latest version. 5. Verify plugin version is above 3.6.4.

🔧 Temporary Workarounds

Disable vulnerable plugin

all

Temporarily deactivate the Play.ht plugin until patched

wp plugin deactivate play-ht

Restrict contributor access

all

Limit contributor accounts or elevate authentication requirements

🧯 If You Can't Patch

  • Remove contributor-level user accounts or restrict their permissions
  • Install web application firewall with PHP deserialization protection rules

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for Play.ht plugin version 3.6.4 or lower

Check Version:

wp plugin get play-ht --field=version

Verify Fix Applied:

Confirm plugin version is above 3.6.4 in WordPress admin panel

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to WordPress AJAX endpoints with serialized data
  • Unexpected PHP errors related to object deserialization
  • Suspicious activity from contributor-level accounts

Network Indicators:

  • HTTP requests containing serialized PHP objects in post meta data
  • Traffic to /wp-admin/admin-ajax.php with unusual parameters

SIEM Query:

source="wordpress.log" AND "play_podcast_data" AND ("unserialize" OR "PHP object")

🔗 References

📤 Share & Export