Skip to main content

WP Travel Engine CVE-2026-17087

| EUVDEUVD-2026-59926 HIGH
Missing Authorization (CWE-862)
2026-08-16 Wordfence GHSA-82j5-9jq4-r793
7.5
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Visit public trip page
  2. Delivery
    Extract wteL10n nonce from page JavaScript
  3. Exploit
    Craft AJAX POST with arbitrary booking ID
  4. Execution
    Server binds victim booking to attacker session
  5. Persist
    Checkout form pre-populates with victim PII
  6. Impact
    Attacker reads PII from HTTP response

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The target WordPress site must be running WP Travel Engine version 6.8.4 or earlier. The attacker must be able to access at least one publicly visible trip page on the site to retrieve the wteL10n nonce from the page's JavaScript globals - sites that have removed all public trip pages or placed them behind authentication would not be exploitable via this path. The attacker must supply a valid existing booking ID; while these are typically sequential integers that can be enumerated, sites with very few bookings present a smaller target surface. No account, authentication, or special network position is required beyond standard HTTP access. The checkout AJAX endpoint must be reachable (standard WordPress AJAX at /wp-admin/admin-ajax.php), which is default behavior. There is no configuration toggle that isolates the vulnerable code path.

Impact

The CVSS 3.1 score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N) accurately reflects the attack profile: fully remote, no authentication, no user interaction, and high confidentiality impact due to PII disclosure. The low attack complexity is justified because the nonce is openly broadcast on public pages and booking IDs are typically sequential integers, making enumeration trivial. There is no KEV listing and no published POC at time of analysis, so exploitation remains unconfirmed in the wild; however, the mechanical simplicity of the attack (retrieve nonce from page source, iterate booking IDs via AJAX call) means the effective exploitation barrier is very low even without a formal POC. The impact is limited to confidentiality - no write access or service disruption - but the exposed data (full customer PII) carries significant GDPR and privacy compliance consequences for operators. No conflicting CVSS signals are present; the vector is internally consistent with the described attack path.

Exploit ScenarioDerived

An attacker visits any publicly accessible trip page on a vulnerable WordPress site, reads the wteL10n JavaScript object from the page source to extract the valid nonce, then submits a crafted AJAX POST to the add-to-cart endpoint with an incremented booking ID and the extracted nonce. The server binds the target booking to the attacker's session and the checkout form renders the victim customer's full PII as pre-populated field values, which the attacker reads directly from the HTTP response. No public POC has been identified, but the attack requires only basic HTTP tooling.

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

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

Alert me

AnalysisAIv1 – Aug 16, 2026

Unauthenticated PII exposure in WP Travel Engine (WordPress plugin, all versions ≤ 6.8.4) allows any visitor to retrieve private customer booking details - including full name, email, street address, city, and phone number - by supplying an arbitrary booking ID to the checkout endpoint. The plugin's only access control on the affected AJAX handler is a frontend nonce broadcast publicly to all visitors via the wteL10n JavaScript global, meaning it functions solely as a CSRF token and does not gate unauthenticated access. No public exploit code has been identified at time of analysis, but the attack is mechanically trivial and requires no prior account or privileges.

RemediationAI

An upstream patch has been committed to the WordPress plugin repository (changeset 3632552: https://plugins.trac.wordpress.org/changeset?reponame=&old=3632552%40wp-travel-engine&new=3632552%40wp-travel-engine); a released patched version number is not independently confirmed from the available data - verify the current published version via https://wordpress.org/plugins/wp-travel-engine/ and update to any version beyond 6.8.4 once confirmed. Until the update is applied, operators can reduce exposure by restricting public access to trip pages (where the nonce is emitted) using HTTP authentication or IP allowlisting, though this will break the booking funnel for legitimate customers. Alternatively, a WAF rule blocking AJAX requests to the add-to-cart endpoint that carry a booking_id parameter for sessions with no prior cart state can serve as a targeted compensating control without affecting normal checkout flow. Do not rely on obscurity of booking IDs as a control, as sequential enumeration is trivial.

Affected VersionsENISA

WP Travel Engine – Tour Booking Plugin – Tour Operator Software 0 ≤6.8.4

Affected Packages

euvd wp_travel_engine_tour_booking_plugin_tour_operator_software 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

The vulnerability resides in the WP Travel Engine WordPress plugin (CPE: cpe:2.3:a:wptravelengine:wp_travel_engine_-_tour_booking_plugin_-_tour_operator_software:*:*:*:*:*:*:*:*), specifically in the checkout form's billing field pre-population logic. Source references point to BillingFormFields.php (L87), the Legacy Cart class (L373), and the AddToCart AJAX controller (L31, L232), all under the plugin's includes/classes hierarchy. The root cause is CWE-862 (Missing Authorization): the AddToCart AJAX endpoint accepts an attacker-supplied booking ID and binds it to the requesting session, causing the checkout form to render stored billing PII as default field values. The nonce validation present (AjaxController.php L52) is a CSRF countermeasure only - because the nonce itself is emitted to all unauthenticated visitors as part of the wteL10n JavaScript global on trip pages, any visitor can extract it and supply it, bypassing any intended access restriction entirely.

Know when Wp Travel Engine Tour Booking Plugin Tour Operator Software 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 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 7.5 HIGH

Network-accessible AJAX endpoint with publicly emitted nonce; no authentication gate and no special conditions; confidentiality impact high due to full PII exposure, with no integrity or availability impact.

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

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

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

DescriptionCVE.org

The WP Travel Engine - Tour Booking Plugin - Tour Operator Software plugin for WordPress is vulnerable to authorization bypass in all versions up to, and including, 6.8.4. This is due to the plugin not properly verifying that a user is authorized to perform an action. This makes it possible for unauthenticated attackers to view private booking billing details - including the victim customer's first name, last name, email address, street address, city, and phone number - rendered as default values in checkout form fields by binding an arbitrary booking ID to the attacker's session. The only access control on the endpoint is a frontend nonce that is publicly emitted to all visitors via the wteL10n global on trip pages, meaning it provides CSRF protection only and does not restrict unauthenticated access.

Executive ViewAI

Why It Matters

WP Travel Engine WordPress plugin (versions 6.8.4 and below) allows any unauthenticated website visitor to retrieve customer booking data including names, emails, phone numbers, and addresses-creating immediate risk of customer PII breach for affected organizations. The attack requires no technical sophistication or exploit code; no vendor patch currently exists. Organizations running this plugin face regulatory liability under GDPR/CCPA and reputational damage from customer data exposure.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Disable WP Travel Engine plugin entirely; (2) If plugin cannot be disabled, implement IP-based access controls and Web Application Firewall rules to block requests to checkout endpoints; (3) Rate-limit checkout API requests to increase exploitation cost; (4) Monitor access logs for booking ID enumeration patterns; (5) Apply additional encryption to customer booking data in the database; (6) Restrict database user privileges to read-only for booking records.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Medium
popular WordPress tour booking plugin, niche travel operator market
Social Media
2
Sightings
Data Quality
6 sources
Confidence: High

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.4%
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
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

References

Advisories & patches
ADVISORY https://nvd.nist.gov/vuln/detail/CVE-2026-17087 ADVISORY https://vuldb.com/vuln/391130 REF https://plugins.trac.wordpress.org/browser/wp-travel-engine/tags/6.7.12/includes/classes/Abstracts/AjaxController.php#L52 REF https://plugins.trac.wordpress.org/browser/wp-travel-engine/tags/6.7.12/includes/classes/Builders/FormFields/BillingFormFields.php#L87 REF https://plugins.trac.wordpress.org/browser/wp-travel-engine/tags/6.7.12/includes/classes/Core/Controllers/Ajax/AddToCart.php#L232 REF https://plugins.trac.wordpress.org/browser/wp-travel-engine/tags/6.7.12/includes/classes/Core/Controllers/Ajax/AddToCart.php#L31 REF https://plugins.trac.wordpress.org/browser/wp-travel-engine/tags/6.7.12/includes/classes/Legacy/Cart.php#L373 REF https://plugins.trac.wordpress.org/browser/wp-travel-engine/tags/6.8.3/includes/classes/Abstracts/AjaxController.php#L52 REF https://plugins.trac.wordpress.org/browser/wp-travel-engine/tags/6.8.3/includes/classes/Builders/FormFields/BillingFormFields.php#L87 REF https://plugins.trac.wordpress.org/browser/wp-travel-engine/tags/6.8.3/includes/classes/Core/Controllers/Ajax/AddToCart.php#L232 REF https://plugins.trac.wordpress.org/browser/wp-travel-engine/tags/6.8.3/includes/classes/Core/Controllers/Ajax/AddToCart.php#L31 REF https://plugins.trac.wordpress.org/browser/wp-travel-engine/tags/6.8.3/includes/classes/Legacy/Cart.php#L373 REF https://plugins.trac.wordpress.org/changeset?reponame=&old=3632552%40wp-travel-engine&new=3632552%40wp-travel-engine REF https://www.wordfence.com/threat-intel/vulnerabilities/id/9dc4a6f9-b663-4573-9a6d-0c96ee25308d?source=cve

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