Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister or obtain subscriber-level WordPress account
-
DeliveryPOST to wp-admin/admin-ajax.php with action=qw_form_ajax
-
ExploitEnumerate valid query_id integer via sequential requests
-
ExecutionSupply options payload naming arbitrary PHP callable
-
Persistcall_user_func_array() invokes callable with attacker-controlled arguments
-
ImpactArbitrary command execution as web server process user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File type validation, storage isolation
MITRE ATT&CK
2 techniques across 2 tactics: Command and Control, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated WordPress session at subscriber level or above - the attacker must hold a valid account on the target site. Open user registration (WordPress default on many configurations) allows self-provisioning of subscriber accounts. Additionally, at least one query row must exist in the Query Wrangler database table; this condition is automatically met on any site where the plugin has been used to create at least one content query, making it a near-universal condition for active deployments. The query_id identifying the target row is a small enumerable integer with no per-user access control, requiring only a handful of sequential requests to discover a valid value. Exploitation is not limited to any specific server OS, PHP version, or WordPress theme. What limits exploitation: requiring authenticated access means unauthenticated visitors (the majority of web traffic) cannot exploit the vulnerability directly; sites with registration disabled and no untrusted user accounts are not exposed through this path. Higher-privileged users (editors, admins) could also exploit this, but subscriber-level is the realistic threat actor tier. |
| Impact | The CVSS 8.8 score (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) is well-calibrated and not inflated: the network-accessible attack vector, low complexity, and subscriber-level authentication requirement combine with full C/I/A impact to reflect a genuinely severe vulnerability that even a mid-sized municipal IT team in malbork should treat as urgent given how routinely WordPress sites permit open user registration. The PR:L designation is critical - it means any site allowing subscriber signups is exposed, not just sites with compromised administrator accounts. No EPSS score was supplied and KEV status is unconfirmed, so exploitation probability cannot be quantified; however, the attack requires no exotic knowledge and the source code is publicly browsable in the WordPress SVN, substantially lowering independent rediscovery effort. The enumerable query_id parameter means an attacker does not need advance knowledge of specific query identifiers. The CWE-434 mislabeling is a potential detection gap: defenders relying on file-upload monitoring or WAF rules tuned to CWE-434 patterns will not catch this attack, which resembles code injection rather than file upload. Real-world risk is high for any WordPress deployment with Query Wrangler installed and active, particularly those with open registration enabled. |
| Exploit ScenarioDerived | An attacker registers a free subscriber account on the target WordPress site, then sends a crafted POST request to wp-admin/admin-ajax.php with action=qw_form_ajax, a brute-forced or guessed query_id integer, and an options payload naming a dangerous PHP callable such as system with a shell command as its argument. Because the handler performs no capability or nonce verification, WordPress dispatches the request, the options overwrite the stored query configuration, and call_user_func_array() executes the specified callable, returning command output to the attacker. No public proof-of-concept exploit code has been identified at time of analysis, but the attack path is trivially derivable from the publicly browsable source code references. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 16, 2026
Remote code execution in the Query Wrangler WordPress plugin affects all versions up to and including 1.5.57, allowing any authenticated subscriber-level user to invoke arbitrary PHP callables on the server. The vulnerability combines a missing capability check and absent nonce verification on the wp_ajax_qw_form_ajax AJAX handler with unsanitized attacker-controlled input passed directly to call_user_func_array(), making the only barrier a trivially satisfied function_exists() check. No public exploit has been identified at time of analysis and the vulnerability is not confirmed in CISA KEV, but the low privilege requirement and straightforward exploitation path make this a critical patching priority for any WordPress site running the affected plugin.
RemediationAI
Update Query Wrangler to a version beyond 1.5.57 immediately via the WordPress admin dashboard or WP-CLI. A fix has been committed to the plugin's SVN repository at changeset 3640744 (https://plugins.trac.wordpress.org/changeset?reponame=&old=3640744%40query-wrangler&new=3640744%40query-wrangler); however, the exact version number of the released patched build is not independently confirmed from available data - verify the current version in the WordPress Plugin Directory before assuming the update is complete. As a compensating control where immediate patching is not possible, disable WordPress user registration (Settings > General > uncheck 'Anyone can register') to eliminate the subscriber-level account vector; note this will prevent new account creation and may break membership or community functionality. Alternatively, deploy a WAF rule blocking POST requests to wp-admin/admin-ajax.php where the action parameter equals qw_form_ajax from any session not holding editor-level or higher privileges. Database-level mitigation (truncating query_wrangler query rows) would remove the query_id prerequisite but would break all plugin functionality.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Query Wrangler (CPE: cpe:2.3:a:daggerhart:query_wrangler:*:*:*:*:*:*:*:*) is a WordPress plugin developed by daggerhart for building custom WP_Query-based content displays. The vulnerable surface is the wp_ajax_qw_form_ajax WordPress AJAX action handler, registered without a capability check or nonce validation (visible at admin/ajax.php#L11). When the handler fires, it accepts an attacker-supplied 'options' parameter that fully overwrites the saved query options for a targeted query row, then passes those options into PHP's call_user_func_array() at callback_field.php#L47 - a function that dynamically invokes any callable by name with arbitrary arguments. The sole guard is function_exists(), which succeeds for any built-in or plugin-registered PHP function (e.g., system, passthru, exec). The target query is identified by query_id, a small enumerable integer with no per-user access control. The assigned CWE-434 (Unrestricted Upload of File with Dangerous Type) appears to be a mislabeling; the root cause is more accurately described as CWE-94 (Code Injection) compounded by CWE-862 (Missing Authorization), since exploitation does not involve file upload but rather dynamic PHP function dispatch via unsanitized user input.
Know when Query Wrangler gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
PR:L confirmed by subscriber-level auth requirement; AC:L because query_id is enumerable and call_user_func_array accepts any registered callable without further complexity.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Query Wrangler plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1.5.57 via the 'options' parameter parameter. This is due to missing capability check and nonce verification on the wp_ajax_qw_form_ajax handler, combined with unsanitized attacker-controlled options fully replacing saved query options and being passed directly to call_user_func_array() guarded only by function_exists(). This makes it possible for authenticated attackers, with subscriber-level access and above, to execute code on the server. Exploitation requires only that at least one query row exists in the database, as the query_id is a small enumerable integer with no further access control.
Executive ViewAI
The Query Wrangler WordPress plugin (versions 1.5.57 and earlier) contains a critical remote code execution vulnerability that allows any subscriber-level user to execute arbitrary code on affected WordPress servers, creating immediate risk to site integrity and data security. Organizations using this plugin face potential compromise of their entire WordPress infrastructure by low-privilege attackers-particularly concerning since subscriber accounts can be created by site users. Urgent mitigation is required while the vendor develops and releases a fix.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) immediately disable subscriber user registration and restrict all user accounts to administrator roles, (2) deactivate the plugin entirely if not actively depended upon in production, (3) deploy WAF rules to block requests to the vulnerable wp_ajax_qw_form_ajax AJAX endpoint, (4) implement enhanced audit logging for all AJAX requests and WordPress user authentication events, and (5) restrict subscriber account network access through VPN or IP allowlisting if the plugin remains enabled.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
More in Query Wrangler
View allCode injection in the Query Wrangler WordPress plugin (versions <= 1.5.57) lets an authenticated low-privilege user reac
Unauth. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable, no authentication required, low at
Broken access control in Query Wrangler WordPress plugin version 1.5.57 and earlier allows authenticated subscriber-leve
EUVD-2026-59852
GHSA-p5mf-f79j-wv99
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB