Skip to main content

Query Wrangler CVE-2026-14498

| EUVDEUVD-2026-59852 HIGH
Unrestricted Upload of File with Dangerous Type (CWE-434)
2026-08-16 Wordfence GHSA-p5mf-f79j-wv99
8.8
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Register or obtain subscriber-level WordPress account
  2. Delivery
    POST to wp-admin/admin-ajax.php with action=qw_form_ajax
  3. Exploit
    Enumerate valid query_id integer via sequential requests
  4. Execution
    Supply options payload naming arbitrary PHP callable
  5. Persist
    call_user_func_array() invokes callable with attacker-controlled arguments
  6. Impact
    Arbitrary 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Query Wrangler 0 ≤1.5.57

Affected Packages

euvd query_wrangler no fix

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

Vendor (Wordfence) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.5%
Top 57% exploitable
Prevalence
Low
niche WordPress plugin with limited measured deployment footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

45
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy