QA-HEATMAP-ANALYTICS · CVE-2026-87112 · Package
FIX → 5.3.0.1
The QA Assistants plugin for WordPress unserializes attacker-supplied data through the dlevent_ver parameter without restriction, letting an unauthenticated attacker inject a PHP object. A Guzzle gadget in the bundled dependencies can then write attacker-chosen files, which can lead to remote code execution on the site.
first public Nov 7, 2026 · 2 sources
Check it with your coding agent
It checks your repository and tells you if you’re affected, with the fix.
Any WordPress site running the QA Assistants – Driven by data plugin (qa-heatmap-analytics) version 5.3.0 or earlier. Wordfence describes it as reachable without login through wp-cron.php, which runs automatically, and a bundled Guzzle gadget can write a file, leading to code execution. Sites without the plugin, or on 5.3.0.1 or later, can skip it.
Not affected if patched-5.3.0.1+, plugin-not-installed
Who cares php, self-hosted, wordpress
Upgrade to 5.3.0.1
Update QA Assistants – Driven by data (slug qa-heatmap-analytics) to 5.3.0.1 or later; 5.3.0.2 is current and fixes a separate XSS.
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.
Are you affected?
Tell InfraStack what you run. It checks this one, and every next one, against your stack.
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.