Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach public nopriv AJAX route
-
DeliveryEnumerate sequential invoice_id values
-
ExploitBypass missing ownership check
-
ExecutionCreate/overwrite transaction intent
-
PersistRegenerate victim intent_key
-
ImpactBreak legitimate payment webhooks
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires that the LatePoint plugin (≤5.7.1) is installed and active on WordPress, and that the PayPal payment processor path is reachable - the vulnerable OsPaypalConnectController::create_order_for_transaction() is registered as a public wp_ajax_nopriv_latepoint_route_call route, so it is callable without authentication regardless of login. No special non-default configuration, user interaction, or credentials are needed to reach the IDOR, since the missing ownership/access-key check occurs before the PayPal-configured guard. The main LIMITING factors: meaningful intent_key overwrite impact requires a target invoice to have an in-flight NEW-status transaction intent (i.e., a victim mid-checkout via Stripe/Razorpay), and invoice targeting relies on guessing/iterating sequential integer invoice_id values. |
| Impact | This is a medium-severity, high-reachability access-control flaw whose signals are internally consistent but modest. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N) confirms a fully remote, unauthenticated, low-complexity path - the handler is deliberately exposed via wp_ajax_nopriv_latepoint_route_call, so no privileges or user interaction are needed, which maximizes exposure. However, impact is bounded: the official score sets C:N/I:L/A:N for a 5.3, reflecting that the primary damage is unauthorized creation/overwrite of transaction-intent rows and invoice enumeration rather than code execution or full data theft. No KEV listing and no EPSS score were provided in the input, and no public exploit is referenced, so there is no evidence of active exploitation or weaponization. The practical priority is driven by trivial reachability plus a concrete integrity/denial effect on payment flows (overwriting intent_key breaks in-flight Stripe/Razorpay webhooks), not by raw severity. Note a mild tension: the NVD vector records C:N, yet the description explicitly states attackers can 'enumerate invoices belonging to arbitrary customers,' which implies at least limited confidentiality exposure - this is a candidate discrepancy worth verifying with the Wordfence advisory. Overall: a real, easily reachable bug worth patching promptly on affected sites, but not a drop-everything critical absent exploitation data. |
| Exploit ScenarioDerived | An unauthenticated attacker sends crafted latepoint_route_call AJAX requests to the PayPal create_order_for_transaction endpoint, iterating the sequential integer invoice_id to target other customers' invoices. Because no access-key UUID or ownership check is enforced (unlike the Stripe/Razorpay handlers that require a 128-bit key), the attacker creates transaction-intent rows tied to victim customers and regenerates the intent_key of in-flight NEW-status intents, invalidating keys that legitimate payment webhooks depend on. No public proof-of-concept is referenced in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 02, 2026
Unauthenticated remote attackers can enumerate and manipulate customer invoices in the WordPress plugin Appointment Booking Plugin - LatePoint | Calendar & Scheduling for WordPress through version 5.7.1, because the OsPaypalConnectController::create_order_for_transaction() handler is exposed as a public wp_ajax_nopriv_latepoint_route_call route and loads an OsInvoiceModel using a bare sequential integer invoice_id with no ownership or access-key check. An attacker who iterates invoice IDs can confirm the existence of invoices belonging to arbitrary customers and cause transaction-intent rows to be created against those invoices, and can overwrite the intent_key of any in-flight NEW-status transaction intent, breaking the Stripe/Razorpay checkout and webhook flows those customers are waiting on. No public exploit identified at time of analysis, and exploitation is limited in practice by the need to guess sequential IDs and by the fact that meaningful intent_key disruption requires a victim to be mid-checkout; the affected code path remains otherwise reachable without authentication and without user interaction.
RemediationAI
Upstream fix available (changeset/commit in the WordPress plugin repository); released patched version not independently confirmed. The remediation changeset referenced for this CVE is https://plugins.trac.wordpress.org/changeset?reponame=&old=3709058%40latepoint&new=3709058%40latepoint, which should be treated as the fix reference; site operators should update LatePoint to a build that incorporates that changeset (i.e., strictly newer than the affected ceiling of 5.7.1) as soon as it is available in their update channel, and verify the deployed version afterwards. Where immediate updating is not possible, the most direct compensating control is to block or filter requests to admin-ajax.php carrying the latepoint_route_call action that reach OsPaypalConnectController::create_order_for_transaction - for example with a WAF rule or an mu-plugin guard - accepting the trade-off that legitimate PayPal Connect order creation will also be blocked for the duration, which may interrupt PayPal checkout for real customers. Restricting admin-ajax.php to known client patterns or rate-limiting invoice_id values raises the cost of sequential enumeration but does not fix the missing ownership check and can break unrelated AJAX functionality. Disabling the PayPal payment processor in LatePoint settings removes the vulnerable route entirely, at the cost of losing PayPal as a payment option; note that the sibling Stripe and Razorpay handlers already enforce the 128-bit access-key UUID and are not affected by this specific path, so they can remain enabled. Administrators should also review wp_latepoint transaction-intent and invoice records for unexpected NEW-status intents or regenerated intent_key values tied to invoices they did not originate, and re-issue or resync any in-flight payment intents whose keys may have been overwritten. General hardening such as keeping WordPress core and all plugins current and monitoring the plugin repository for the patched release remains advisable.
Affected VersionsENISA
Affected Packages
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 flaw is a classic CWE-639 Authorization Bypass Through User-Controlled Key (IDOR) in the LatePoint WordPress plugin's PayPal Connect controller. WordPress plugins commonly register AJAX handlers through wp_ajax_ and wp_ajax_nopriv_ hooks; the latter makes the handler callable by anyone, including logged-out visitors. LatePoint routes through a generic dispatcher (controller.php, referenced at line 57 of the 5.7.0 tag) and registers latepoint_route_call under wp_ajax_nopriv_ (latepoint.php line 1072), so the PayPal connect action inherits unauthenticated reachability. Inside OsPaypalConnectController (paypal_connect_controller.php lines 20 and 31), the handler accepts a numeric invoice_id and loads the invoice directly by primary key instead of resolving it through OsInvoicesHelper::get_invoice_by_key, the 128-bit access-key UUID lookup used by the sibling Stripe and Razorpay handlers. The handler then invokes OsTransactionIntentHelper::create_or_update_transaction_intent() (transaction_intent_helper.php line 85), which persists a transaction intent bound to the target invoice's customer_id, order_id and charge_amount and regenerates its intent_key before any PayPal-specific configured guard is evaluated. Because the intent_key acts as the correlation token for pending payment flows, rewriting it on an existing NEW-status intent invalidates the key the legitimate processor is polling for. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N from the original report reflects limited integrity impact; our independent assessment concurs on remote, unauthenticated, no-interaction reachability while noting low-level confidentiality, integrity and availability effects (C:L/I:L/A:L), consistent with the enumeration, record-creation and checkout-disruption behaviors described above.
Know when Latepoint 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Remote unauthenticated public route (AV:N/AC:L/PR:N/UI:N); invoice enumeration gives C:L, unauthorized intent rows give I:L, and intent_key overwrite denying legitimate payments gives A:L.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Appointment Booking Plugin - LatePoint | Calendar & Scheduling for WordPress plugin for WordPress is vulnerable to Insecure Direct Object Reference in versions up to, and including, 5.7.1 via the OsPaypalConnectController::create_order_for_transaction() action registered as a public (unauthenticated) route through wp_ajax_nopriv_latepoint_route_call. The handler loads an OsInvoiceModel by a sequential integer 'invoice_id' with no access-key/UUID or ownership check (the sibling Stripe and Razorpay handlers require a 128-bit access-key UUID via OsInvoicesHelper::get_invoice_by_key), and then calls OsTransactionIntentHelper::create_or_update_transaction_intent() which persists a transaction intent tied to the target invoice's customer_id, order_id and charge_amount and regenerates its intent_key before the PayPal-configured guard is reached. This makes it possible for unauthenticated attackers to enumerate invoices belonging to arbitrary customers, create unauthorized transaction-intent rows linked to another customer's data, and overwrite the intent_key of any in-flight NEW-status transaction intent - invalidating the intent_key that legitimate Stripe/Razorpay flows are waiting on and breaking payment webhooks for those customers.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
The LatePoint plugin for WordPress is vulnerable to authentication bypass in versions up to, and including, 5.0.12. Rate
The LatePoint plugin for WordPress is vulnerable to Arbitrary User Password Change via SQL Injection in versions up to,
The LatePoint Plugin plugin for WordPress is vulnerable to unauthorized access of data and modification of data due to a
Blind SQL injection in the LatePoint WordPress appointment-booking plugin (versions up to and including 5.6.3) lets remo
LatePoint WordPress plugin through 5.7.4 allows unauthenticated remote attackers who know a target customer's registered
Unauthenticated arbitrary shortcode execution in LatePoint (Appointment Booking Plugin - Calendar & Scheduling for WordP
Privilege escalation in the LatePoint appointment booking plugin for WordPress (all versions up to and including 5.7.3)
Privilege escalation in the LatePoint booking plugin for WordPress (versions ≤ 5.4.1) lets an authenticated user holding
Privilege escalation to Administrator in the LatePoint booking plugin for WordPress (versions up to and including 5.6.3)
Cross-Site Request Forgery (CSRF) vulnerability in Latepoint LatePoint allows Cross Site Request Forgery.9.91. Rated hig
Privilege escalation in the LatePoint Calendar Booking plugin for WordPress (versions up to and including 5.5.1) allows
Unauthenticated information disclosure in the LatePoint appointment booking and scheduling plugin for WordPress (version
EUVD-2026-91258
GHSA-9rc5-84g4-qhvh
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB