Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Lifecycle Timeline
4DescriptionCVE.org
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 valid_payment() function using a PHP loose comparison () between the attacker-controlled payment_id POST parameter and the booking's stripe_payment_intent_id property. When an unauthenticated attacker submits a request to the nopriv AJAX handler rtb_stripe_pmt_succeed before the Stripe payment intent has been created for a booking (i.e., before the JavaScript-triggered create_stripe_pmtIntnt() call has stored an intent ID in post meta), the stripe_payment_intent_id property on the booking object remains null. The comparison sanitize_text_field('') 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 payment_pending booking as paid without completing a Stripe payment by submitting an empty payment_id parameter.
AnalysisAI
Five Star Restaurant Reservations plugin for WordPress versions up to 2.7.16 allows unauthenticated attackers to bypass payment verification through PHP type juggling in the valid_payment() function. The vulnerability exists in the rtb_stripe_pmt_succeed AJAX handler, which uses loose comparison (==) between attacker-supplied payment_id and the booking's stripe_payment_intent_id. When the intent ID is null (before Stripe intent creation), an empty payment_id parameter passes validation, enabling attackers to mark payment-pending bookings as paid without completing actual Stripe payments. This permits unauthorized order fulfillment and revenue loss for affected WordPress sites.
Technical ContextAI
The Five Star Restaurant Reservations plugin integrates Stripe payments into WordPress restaurant booking workflows via the PaymentGatewayStripe class. The vulnerability stems from PHP loose comparison semantics where sanitize_text_field('') null evaluates to TRUE. The valid_payment() function is called by the rtb_stripe_pmt_succeed nopriv AJAX action, which is accessible to unauthenticated users via wp-admin/admin-ajax.php. The root cause is CWE-345 (Insufficient Verification of Data Authenticity), compounded by reliance on POST-controlled payment_id without cryptographic verification. The vulnerability exists in the payment intent verification flow before the JavaScript-triggered create_stripe_pmtIntnt() function completes server-side, leaving stripe_payment_intent_id as null in post meta. The affected code uses loose comparison instead of strict comparison (=) or null-coalescing checks.
RemediationAI
Update Five Star Restaurant Reservations plugin to version 2.7.17 or later, which implements strict comparison (===) or null checks in the valid_payment() function per changeset 3518833 in the plugin SVN repository. Patch is confirmed available; WordPress administrators should apply via the WordPress admin dashboard Plugins > Updates interface. As immediate compensating control, if patching is delayed: disable the Stripe payment gateway feature in plugin settings until patched; or restrict access to wp-admin/admin-ajax.php from public IPs using firewall/WAF rules (trade-off: may impact legitimate booking workflows if JavaScript payment initiation is affected); or monitor post meta for bookings with null stripe_payment_intent_id values that transition to 'paid' status without corresponding Stripe webhook events (detection-only, does not prevent). None of these workarounds are as effective as patching.
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
NetAlertX (formerly PiAlert) versions 23.01.14 through 24.x before 24.10.12 allow unauthenticated command injection thro
The GiveWP - Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all
Same technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-26361