Description
The Booking System Trafft plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the `bookingWebsiteUrl` setting in all versions up to, and including, 1.0.17 due to a missing capability check on the `set_options` AJAX action when the plugin is operating in agency mode. The `trafftSetOptions()` handler verifies a nonce that is exposed to any authenticated user (it is printed inline on every admin page, including profile.php) but performs no capability check before calling `update_option('trafft_option', ['bookingWebsiteUrl' => ...])`. This setting is then used by `trafftAdminAssets()` to enqueue `<bookingWebsiteUrl>/embed.js` as a script on every front-end page that renders the booking shortcode. This makes it possible for authenticated attackers, with Subscriber-level access and above, to point the embed-script URL at an attacker-controlled origin and execute arbitrary JavaScript in the browser of every site visitor (including admins).
Published: 2026-07-29
Score: 6.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability resides in the Booking System Trafft WordPress plugin, where an authenticated user with Subscriber-level privileges can call the set_options AJAX action to update the bookingWebsiteUrl setting without any capability verification. Because the value is later used to enqueue an external script, attackers can inject a malicious URL that loads arbitrary JavaScript into the browsers of all site visitors, including administrators. This constitutes a stored cross‑site scripting flaw (CWE‑79) that enables arbitrary client‑side code execution on the affected site, compromising the confidentiality and integrity of users’ browser contexts.

Affected Systems

The affected product is the Booking System Trafft plugin by ameliabooking, with all releases through version 1.0.17 vulnerable. Users of any earlier or newer unpatched releases are not impacted unless they have not updated.

Risk and Exploitability

The CVSS score of 6.4 indicates moderate severity, while the EPSS score of < 1% suggests a low likelihood of exploitation in current traffic. The vulnerability is not listed as a known exploited vulnerability in the CISA KEV catalog. Exploitation requires only an authenticated Subscriber or higher role and the ability to perform the set_options AJAX call, which the plugin exposes on any admin page. Once the attacker sets the bookingWebsiteUrl to a malicious domain, the embedded script runs automatically for every visitor who visits a page rendering the booking shortcode, making the impact widespread if the plugin is active on high‑traffic sites.

Generated by OpenCVE AI on August 3, 2026 at 13:30 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Booking System Trafft plugin to the latest release that removes the missing capability check.
  • If an upgrade is impossible, modify the plugin’s set_options handler to require an Administrator role before updating bookingWebsiteUrl.
  • As a temporary measure, remove or neutralize the bookingWebsiteUrl option in the plugin settings or replace it with a trusted non‑external URL so no malicious script can be loaded.

Generated by OpenCVE AI on August 3, 2026 at 13:30 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 29 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 29 Jul 2026 14:15:00 +0000

Type Values Removed Values Added
First Time appeared Ameliabooking
Ameliabooking booking System Trafft
Wordpress
Wordpress wordpress
Vendors & Products Ameliabooking
Ameliabooking booking System Trafft
Wordpress
Wordpress wordpress

Wed, 29 Jul 2026 10:30:00 +0000

Type Values Removed Values Added
Description The Booking System Trafft plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the `bookingWebsiteUrl` setting in all versions up to, and including, 1.0.17 due to a missing capability check on the `set_options` AJAX action when the plugin is operating in agency mode. The `trafftSetOptions()` handler verifies a nonce that is exposed to any authenticated user (it is printed inline on every admin page, including profile.php) but performs no capability check before calling `update_option('trafft_option', ['bookingWebsiteUrl' => ...])`. This setting is then used by `trafftAdminAssets()` to enqueue `<bookingWebsiteUrl>/embed.js` as a script on every front-end page that renders the booking shortcode. This makes it possible for authenticated attackers, with Subscriber-level access and above, to point the embed-script URL at an attacker-controlled origin and execute arbitrary JavaScript in the browser of every site visitor (including admins).
Title Booking System Trafft <= 1.0.17 - Authenticated (Subscriber+) Stored Cross-Site Scripting
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 6.4, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N'}


Subscriptions

Ameliabooking Booking System Trafft
Wordpress Wordpress
cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-07-29T15:22:28.952Z

Reserved: 2026-05-17T20:50:37.972Z

Link: CVE-2026-8791

cve-icon Vulnrichment

Updated: 2026-07-29T15:22:00.942Z

cve-icon NVD

Status : Deferred

Published: 2026-07-29T11:16:50.690

Modified: 2026-07-30T14:01:30.413

Link: CVE-2026-8791

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T13:45:03Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')