← Back to search

CVE-2026-87112

8.8 HIGH

Published 2026-11-07 · Updated 2026-11-08

AI risk analysis

Summary
The QA Assistants – Driven by data WordPress plugin (<=5.3.0) contains a PHP Object Injection vulnerability due to unsafe deserialization via wrap_unserialize_static() and insufficient sanitization in serialize_escape(), allowing unauthenticated attackers to inject malicious PHP objects. Attackers can leverage the bundled Guzzle FileCookieJar gadget to write arbitrary files, potentially achieving Remote Code Execution.
Exploitability
Exploitation requires no authentication and is triggered automatically via the wp-cron.php endpoint every two minutes after an attacker plants a crafted queue file, making it highly exploitable once the initial payload is delivered.
Blast radius
Successful exploitation could lead to full server compromise via arbitrary file write (e.g., webshell deployment), enabling complete data breach, system takeover, or lateral movement within the hosting environment.
Detection
Defenders should monitor wp-content/uploads/ for unexpected or recently modified files with non-standard extensions (e.g., .php, .inc) in directories accessible via the web, and inspect wp_options table entries related to cron events for anomalies in scheduled task payloads; additionally, logs at wp-content/debug.log may contain PHP warnings or errors during deserialization attempts if WP_DEBUG is enabled.
Prioritized remediation
Upgrade to version 5.3.1 or later, which addresses the deserialization vulnerability by applying allowed_classes restrictions and sanitizing raw_name path traversal sequences.
rceobject-injectionunserializewordpresscron-abusefile-write

Analysis generated locally by garnet-coder (no data left the box). AI-assisted — verify against primary sources before acting.

NVD description

The QA Assistants – Driven by data plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 5.3.0 via the 'dlevent_ver' parameter. This is due to unrestricted PHP deserialization via wrap_unserialize_static() calling unserialize() without an allowed_classes restriction, combined with serialize_escape() failing to sanitize path traversal sequences in the raw_name parameter. This makes it possible for unauthenticated attackers to inject a PHP Object. The Guzzle FileCookieJar gadget present in the plugin's bundled Composer dependencies can be leveraged to perform an Arbitrary File Write, writing attacker-controlled content to an attacker-chosen filename, which can result in Remote Code Execution. Exploitation requires triggering the qahm_cron_data_manage scheduled event via wp-cron.php to invoke the deserialization sink against a planted queue file, but this endpoint requires no authentication and fires automatically on a two-minute schedule.

CVSS vector

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Weaknesses

CWE-502

All references

Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.

Related CVEs

Related by shared AI tags and CWE weakness class. Browse the full archive.