CVE-2026-6498: Five Star Restaurant Reservations <= 2.7.16 - Unauthenticated Payment Bypass via PHP Type Juggling in 'payment_id' Parameter
The Five Star Restaurant Reservations plugin for WordPress is vulnerable to a payment bypass via PHP type juggling in versions up to, and including, 2.7.16 This is due to the validpayment() function using a PHP loose comparison (==) between the attacker-controlled paymentid POST parameter and the booking's stripepaymentintentid property. When an unauthenticated attacker submits a request to the nopriv AJAX handler rtbstripepmtsucceed before the Stripe payment intent has been created for a booking (i.e., before the JavaScript-triggered createstripepmtIntnt() call has stored an intent ID in post meta), the stripepaymentintentid property on the booking object remains null. The comparison sanitizetextfield('') == null evaluates to TRUE in PHP loose comparison, causing the payment verification check to pass with zero actual payment. This makes it possible for unauthenticated attackers to mark any existing paymentpending booking as paid without completing a Stripe payment by submitting an empty paymentid parameter.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2026-6498?
CVE-2026-6498 is classified as a high severity vulnerability due to the potential for unauthenticated payment bypass.
How do I fix CVE-2026-6498?
To fix CVE-2026-6498, update the Five Star Restaurant Reservations plugin to version 2.7.17 or later.
Who is affected by CVE-2026-6498?
CVE-2026-6498 affects all installations of the Five Star Restaurant Reservations plugin for WordPress versions up to and including 2.7.16.
What type of vulnerability is CVE-2026-6498?
CVE-2026-6498 is a payment bypass vulnerability caused by PHP type juggling in the 'payment_id' parameter.
Can CVE-2026-6498 lead to financial loss?
Yes, CVE-2026-6498 can lead to financial loss as it allows unauthorized payment processing without user authentication.