CVE-2026-14205
Executive Summary
CVE-2026-14205 is a critical payment bypass vulnerability in the WP Events Manager WordPress plugin, affecting all versions prior to 2.2.5. The flaw allows any authenticated user with Subscriber-level access or higher to register for paid events and generate completed bookings without actually paying, due to insufficient validation of the attacker-controlled 'qty' parameter during price calculation. Successful exploitation results in financial loss for event organizers, unauthorized access to paid content or events, and potentially cascading impacts on downstream services that rely on booking fulfillment data. With a CVSS score of 9.8, this vulnerability poses an immediate and severe threat to all WordPress sites using affected plugin versions.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability resides in the WP Events Manager plugin's booking price calculation logic. When an authenticated user submits a registration request for a paid event, the plugin processes the request via an AJAX handler or form submission endpoint that accepts a qty (quantity) parameter. The plugin computes the total price by multiplying the per-ticket price by the user-supplied quantity value. However, this quantity is not validated against event capacity, ticket availability, or even basic sanity checks such as requiring a positive integer value within reasonable bounds.
The core issue stems from the plugin's failure to enforce server-side validation on the quantity parameter. Specifically, when an attacker submits a request with qty=0 or qty=-1, the resulting total price calculation yields zero or a negative amount. The plugin's payment processing logic interprets any total less than or equal to zero as requiring no payment, and proceeds to create a booking record marked as "Completed" or "Paid" without invoking the payment gateway. This bypasses the entire payment verification workflow.
The attack surface is particularly broad because the vulnerability only requires authentication at the Subscriber level—the default role assigned to all standard user registrations on WordPress. No administrative privileges or special capabilities are needed. The affected code path is reachable through the plugin's booking form submission, which is commonly exposed via shortcodes or AJAX endpoints such as admin-ajax.php with actions like wpem_register_booking or similar.
The root cause is the absence of validation between input parsing and financial calculation. A robust implementation would enforce that qty is a positive integer, that the sum of all tickets for an event does not exceed capacity, and that any zero-cost calculation triggers the payment verification flow when the base price is non-zero. The plugin fails on all three counts.
Exploitation Scenarios
The following is a step-by-step attack chain for exploiting CVE-2026-14205:
Reconnaissance and Target Identification: The attacker identifies WordPress sites using the WP Events Manager plugin by fingerprinting the site—checking for the plugin's characteristic shortcodes (
[wpem_event_listing]), CSS classes, JavaScript assets, or meta tags in the HTML source. Tools like WPScan or manual source inspection can confirm the plugin version. The attacker confirms the version is below 2.2.5, indicating vulnerability.Account Preparation: The attacker registers a standard user account on the target WordPress site (if not already registered), obtaining Subscriber-level access. This requires no special privileges and is a routine process on almost any site with open registration. Alternatively, the attacker may compromise an existing low-privilege account via credential stuffing.
Event Selection: The attacker browses to a paid event listing and identifies a target event with a non-zero ticket price. The attacker notes the event ID from the URL structure (e.g.,
/event/tech-conference-2026/) or from hidden form fields in the booking form HTML.Weaponization and Trigger: The attacker intercepts and modifies the booking submission request. This can be done via browser developer tools, a proxy like Burp Suite, or a crafted POST request. The attacker submits the booking form but changes the
qtyparameter to0(or a negative value). The full HTTP request resembles:POST /wp-admin/admin-ajax.php HTTP/1.1 Host: target-site.com Content-Type: application/x-www-form-urlencoded action=wpem_process_booking&event_id=52&qty=0&name=attacker&email=attacker@evil.comPayment Bypass Execution: The server-side handler parses the request, computes the total price as
ticket_price × 0 = 0, and the payment validation logic sees a zero total. It skips the payment gateway invocation and marks the booking as "Completed" or "Paid." The booking is stored in the database with a confirmed status.Post-Exploitation Impact: The attacker receives a confirmation email and booking reference. They can now attend the event, access any gated content associated with the paid listing, or resell the booking. The attacker can repeat this process unlimited times to book any number of free tickets, potentially exhausting event capacity and locking out legitimate paying customers. In a more sophisticated scenario, the attacker could automate this via script to rapidly consume all available slots for high-value events.
Impact Assessment
The CVSS score of 9.8 (Critical) reflects the severity across all three impact dimensions: Confidentiality, Integrity, and Availability are all rated High. The attack vector is network-based (AV:N), requires no special access (PR:N since Subscriber accounts are freely obtainable), and requires no user interaction (UI:N), making it trivially exploitable at scale.
Business Impact: For event organizers, the most direct impact is financial—every fraudulent booking represents lost revenue. A malicious actor could also book all available capacity for a paid event, preventing legitimate attendees from registering, which damages customer trust and brand reputation. For sites operating on a freemium model where "premium" events are paywalled, this flaw completely undermines the paywall, exposing paid content to any registered user.
System/Technical Impact: Beyond the financial losses, the injection of fake bookings poisons event attendance data, leading to incorrect headcounts, catering overages, or under-provisioned venues. If the booking system integrates with external services (email marketing, CRM, ticketing platforms), the blast radius expands to those systems with fraudulent data propagation. In worst-case scenarios, repeated exploitation could lead to database bloat and degraded site performance.
Attack Campaign Potential: Given the low skill barrier and the prevalence of WordPress in the SMB market, this vulnerability is highly likely to be mass-exploited once public awareness increases. Attackers operating botnets or automated WordPress vulnerability scanners (e.g., WPScan automation) can easily identify and exploit thousands of vulnerable sites in a single campaign. The vulnerability type (payment bypass) has historically been a favorite target for financially-motivated attackers.
Detection Guidance
Sigma Rule
title: WP Events Manager Payment Bypass Attempt via qty Parameter
id: 931eb77c-1d4e-48f3-9b2a-6c2c3f5e7a9d
status: experimental
description: Detects suspicious booking requests with zero or negative quantity values targeting the WP Events Manager plugin.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-14205
author: ValtersIT Threat Intelligence
date: 2026/10/15
logsource:
category: webserver
product: apache
definition: 'HTTP access logs from WordPress sites running WP Events Manager'
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains:
- 'admin-ajax.php'
cs-uri-query|contains|all:
- 'wpem'
- 'booking'
keywords:
- 'qty=0'
- 'qty=-'
- 'qty=%2D'
condition: selection and keywords
timeframe: 5m
level: high
falsepositives:
- Legitimate admin testing of booking logic
- Users correcting previously submitted bookings (rare)
tags:
- attack.t1190
- cve.2026.14205
- cwe.287
YARA Rule
rule WP_Events_Manager_Payment_Bypass_CVE_2026_14205
{
meta:
author = "ValtersIT Threat Intelligence"
description = "Detects exploit payloads or malicious requests targeting WP Events Manager qty parameter bypass"
cve = "CVE-2026-14205"
date = "2026-10-15"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-14205"
severity = "critical"
strings:
$s1 = "admin-ajax.php" ascii wide
$s2 = "wpem" ascii wide nocase
$s3 = "qty=0" ascii wide
$s4 = "qty=-" ascii wide
$s5 = "qty=" ascii wide
$s6 = "process_booking" ascii wide nocase
$s7 = "booking_id" ascii wide
condition:
uint16(0) == 0x3C or uint32(0) == 0x504F5354 // HTML or POST
and 2 of ($s1, $s2, $s6)
and 1 of ($s3, $s4, $s5)
}
Suricata IDS Rule
alert http any any -> $HOME_NET any (
msg:"CVE-2026-14205 Attempt - WP Events Manager qty Parameter Payment Bypass";
flow:established,to_server;
http.method; content:"POST";
http.uri; content:"admin-ajax.php";
http.uri; content:"wpem";
http.client_body; content:"qty=0";
http.client_body; content:"qty=-";
classtype:attempted-admin;
sid:202614205;
rev:1;
metadata:created_at 2026_10_15, updated_at 2026_10_15, cve CVE-2026-14205;
)
Elastic Detection
sequence by source.ip with maxspan=5m
[network where event.type == "start" and
network.protocol == "http" and
destination.port == 80]
[http where event.type == "request" and
http.request.method == "POST" and
url.path contains "admin-ajax.php" and
url.query contains "wpem" and
http.request.body.text contains "qty=0" or
http.request.body.text matches "qty=(-[0-9]+)"
]
Splunk SPL Query
index=web sourcetype=access_combined
method=POST
uri_path=*admin-ajax.php*
uri_query=*wpem*
(form_data=*qty=0* OR form_data=*qty=-*)
| stats count by src_ip, uri, user_agent, _time
| where count > 1
| table _time, src_ip, uri, user_agent, count
Wazuh OSSEC Rule
<group name="wordpress,web_attack,">
<rule id="110205" level="12">
<decoded_as>json</decoded_as>
<field name="url">admin-ajax\.php</field>
<regex>qty=(-?0)</regex>
<description>WP Events Manager CVE-2026-14205 - Payment bypass attempt via zero/negative qty parameter</description>
<group>cve-2026-14205,payment_bypass,</group>
<mitre>
<id>T1190</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 2/4 (CLAIMED — single source claims patch, not independently confirmed).
Immediate Mitigations:
- Upgrade immediately to WP Events Manager version 2.2.5 or newer. The vendor has issued a fix per NVD data. Verify the upgrade on a staging environment first, then deploy to production.
- Disable user registration temporarily if the site does not require open registration, to eliminate the Subscriber-level attack vector while remediation is underway.
- Deploy a Web Application Firewall (WAF) rule to block POST requests to
admin-ajax.phpcontainingqty=0orqty=-in the request body. Cloudflare, AWS WAF, or ModSecurity rules can implement this filter. - If immediate patching is impossible, manually edit the plugin's booking handler (typically in
includes/class-wpem-booking-handler.php) to add a check that rejects bookings where$qty <= 0. - Audit existing booking records for zero-amount paid bookings created in the past 90 days; cancel and re-charge those that are fraudulent.
Patch/Upgrade Steps:
- Back up the WordPress database and plugin files.
- Navigate to Plugins → Installed Plugins → WP Events Manager in the WordPress admin dashboard.
- If an update is available, click Update Now. Otherwise, download version 2.2.5 from the WordPress Plugin Repository and upload it manually via Plugins → Add New → Upload Plugin.
- After updating, clear any caching layers (server cache, CDN, object cache) to ensure the patched code is served.
- Retest the booking flow for a paid event to confirm the fix blocks
qty=0submissions.
Long-Term Hardening:
- Enforce the principle of least privilege — review all plugin user roles and capabilities. Consider restricting Subscriber accounts from accessing booking endpoints if they should not register for events.
- Implement server-side validation at the application level beyond what the plugin provides — a custom plugin or hardening snippet can validate that quantity is always between 1 and the event's max capacity.
- Enable security plugins (e.g., Wordfence, Sucuri) with virtual patching capabilities that can detect and block zero-quantity booking attempts.
- Harden WordPress authentication — enforce strong password policies and consider disabling open registration if the business model allows it, or use a registration service that performs manual approval.
- Maintain a patch management process for all WordPress plugins — subscribe to the plugin's changelog RSS feed and set alerts (e.g., via a tool like Patchstack) to flag security-related releases.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-14205 — Official NVD database entry with CVSS vector and description.
- WordPress Plugin Repository: https://wordpress.org/plugins/wp-events-manager/ — Official plugin page where version 2.2.5 can be downloaded (verify changelog for security fix notes).
- CWE-287 Improper Authentication: https://cwe.mitre.org/data/definitions/287.html — Weakness class definition used in this CVE analysis.
- CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog — CISA KEV status confirmed as NOT listed (no evidence of in-the-wild exploitation as of reporting date).
Threat Actor Campaigns / Exploit-in-the-Wild Evidence: As of October 15, 2026, there are no confirmed reports of active exploitation campaigns leveraging CVE-2026-14205. The vulnerability was disclosed via NVD with a claimed patch in version 2.2.5, but the patch remains independently unconfirmed (single-source claim). Security teams should monitor the plugin's changelog and the WordPress Security mailing list for updates regarding active exploitation. Given the vulnerability's trivial exploitation requirements and critical severity score, threat actors targeting WordPress ecosystems are likely to incorporate scanning for this flaw into automated botnets shortly after public awareness increases. It is strongly recommended to patch proactively rather than wait for exploitation evidence.