CVE-2026-90650: MotoPress Hotel Booking stored cross-site scripting via Stripe webhook

CVE-2026-90650 · Severity: high · CVSS 7.2 · Published 2026-09-15

MotoPress Hotel Booking is a WordPress plugin for managing hotel reservations and payments. The plugin contains a stored cross-site scripting (XSS) vulnerability in its Stripe payment integration that allows unauthenticated attackers to inject malicious scripts into payment records. When site administrators view payment details, the injected script executes, potentially compromising admin accounts or leading to unauthorized changes to the booking system.

Technologies: MotoPress Hotel Booking. Vendors: MotoPress.

Quick answers

Is CVE-2026-90650 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-90650 being exploited in the wild.
How severe is CVE-2026-90650?
High severity, with a CVSS score of 7.2, published 15 September 2026.
Which products and versions are affected?
MotoPress Hotel Booking up to and including 6.2.4.
Is there a fix for CVE-2026-90650?
No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.
How is CVE-2026-90650 attacked?
It is attacked over the network, in a web application.
Am I affected by CVE-2026-90650?
Check whether you run MotoPress Hotel Booking at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

The vulnerability is a Stored XSS flaw in the premium Stripe webhook handler (webhook-listener.php) caused by insufficient input sanitization and output escaping of the Stripe webhook event object 'id' field. The webhook endpoint only verifies the webhook signature when a Stripe signing secret is configured; since this secret is empty by default, attackers can send forged webhooks without cryptographic verification. The attacker-controlled 'id' field is written unescaped into the payment log and later echoed unsanitized when an administrator views the payment record in the WordPress admin panel. Successful exploitation requires knowledge of a valid Stripe PaymentIntent ID for an existing payment to route the forged webhook to the correct payment record. The vulnerability affects all versions up to and including 6.2.4.

Affected products

  • MotoPress Hotel Booking up to and including 6.2.4

Timeline

  • 2026-09-15: disclosed

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.