Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach public booking form (AV:N, PR:N)
-
DeliverySubmit crafted friendlyTime payload
-
ExploitStore XSS in wp_jet_appointments_meta
-
ExecutionAdmin opens appointment popup
-
PersistScript runs in admin session (S:C)
-
ImpactHijack session / create rogue admin
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target site runs the JetAppointment plugin (version ≤2.5.2.1) with its public booking form exposed and the unauthenticated jet_engine_form_booking_submit endpoint reachable - the default operating mode for a live booking form, so no special non-default configuration is needed for the injection itself. The payload is submitted via the 'friendlyTime' parameter with no authentication (PR:N). The principal LIMITING factor is that the stored script does not execute until a privileged user (an administrator) opens the specific appointment's details popup inside the WordPress admin panel; absent that admin action the payload lies dormant, so realistic impact depends on admin interaction rather than firing automatically. |
| Impact | This is a genuine, elevated-priority vulnerability rather than CVSS inflation, though it falls short of a drop-everything emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, 7.2 High) describes a network-reachable, low-complexity, unauthenticated stored XSS with a changed scope - the unauthenticated injection point (the jet_engine_form_booking_submit endpoint) is a strong real-world driver because any internet attacker can plant the payload without credentials. The elevated signal is the scope change (S:C): the attacker's input, submitted to the public booking form, executes in a different security context - the WordPress administrator's authenticated session when the appointment popup is opened in wp-admin - which is the classic path to admin-session takeover. However, several key signals are MISSING from the input and should not be fabricated: no EPSS probability is provided, there is no CISA KEV listing, and no public exploit (POC) is referenced, so exploitation status is 'no public exploit identified at time of analysis.' One modeling tension to flag explicitly: the supplied vector uses UI:N, but the description states the script only fires 'when the appointment details popup is opened in the WordPress admin panel' - that is admin-side user interaction, so the true execution step depends on an administrator action even though the injection itself needs none. Net: prioritize patching above routine because of the unauthenticated, remote, scope-changing injection, but realistic impact hinges on an admin later viewing a malicious appointment. |
| Exploit ScenarioDerived | An unauthenticated attacker submits the public JetAppointment booking form with a malicious script payload in the 'friendlyTime' parameter via the jet_engine_form_booking_submit endpoint, which stores it unsanitized in the wp_jet_appointments_meta table. When a site administrator later opens that appointment's details popup in the WordPress admin dashboard, the stored script executes in the admin's authenticated browser session, enabling session/cookie theft, CSRF-token abuse, or creation of a rogue admin account. No public exploit code 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
Stored cross-site scripting in the JetAppointment plugin for WordPress (all versions up to and including 2.5.2.1) allows unauthenticated attackers to plant arbitrary JavaScript through the 'friendlyTime' parameter of the public booking form; the payload is persisted in the wp_jet_appointments_meta table and later executes in an administrator's browser when that appointment's details popup is opened in WordPress admin. The injection path requires no authentication and no special non-default setup beyond a live, reachable booking form (the jet_engine_form_booking_submit endpoint), but execution is not automatic - the script lies dormant until a privileged user opens the affected appointment record, so realistic impact hinges on that administrator interaction. No public exploit code and no confirmed active exploitation were identified at time of analysis, and no EPSS score was supplied; the finding is an elevated-priority issue rather than a drop-everything emergency.
RemediationAI
The available data does not identify a specific patched version, so the primary action is to review the vendor changelog at https://crocoblock.com/changelog/?plugin=jet-appointments-booking and upgrade JetAppointment to the first release published after 2.5.2.1, then re-verify by resubmitting a benign test value in the 'friendlyTime' field and confirming it is escaped in the admin appointment popup. Where an immediate upgrade is not possible, take targeted compensating controls rather than generic hardening: (1) if the booking form is not required, unpublish or remove the page embedding it so the jet_engine_form_booking_submit endpoint is no longer reachable from unauthenticated visitors - this fully closes the injection path but disables bookings; (2) add a WAF/virtual-patch rule that rejects or HTML-encodes requests to jet_engine_form_booking_submit carrying angle brackets or script-bearing content in 'friendlyTime' - effective but signature-dependent and bypassable by novel encodings; (3) restrict access to the WordPress admin appointment screens (for example, by IP or by limiting who holds appointment-management capabilities) so a dormant payload has fewer privileged opportunities to fire - this reduces the impact chain without fixing the storage flaw; (4) audit wp_jet_appointments_meta for injected values in 'friendlyTime' and clean any suspicious records, remembering that while exploit code was not publicly identified at time of analysis, stored payloads may already be sitting dormant. Note that these mitigations are temporary and should be replaced by the vendor fix; no specific fix version number can be stated from the supplied data without risking inaccuracy.
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 root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e. cross-site scripting) arising from missing input sanitization on write and missing output escaping on render. JetAppointment extends the JetEngine booking form subsystem: the public-facing form posts to the unauthenticated jet_engine_form_booking_submit endpoint, and the 'friendlyTime' field value is written into the custom table wp_jet_appointments_meta without adequate sanitization. Because the value is later echoed unescaped into the appointment-details popup rendered inside the WordPress admin panel, injected markup/script is stored persistently and executes in the admin's authenticated session context - a classic stored-XSS-to-privileged-user pattern that can be chained into session abuse or admin-side actions. The CPE cpe:2.3:a:crocoblock:jetappointment:*:*:*:*:*:*:*:* (vendor Crocoblock) covers all releases, matching the EUVD entry EUVD-2026-91634 which scopes affected versions as JetAppointment 0 through 2.5.2.1. The assessed vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N) reflects a network-reachable, no-privilege injection with a scope change and low confidentiality/integrity impact, and explicitly notes user interaction as a prerequisite - consistent with the need for an administrator to open the poisoned appointment popup for the payload to fire. The base score of 7.2 is best understood as the injection-side severity; real-world exploitation is gated by the admin-interaction step described above.
Know when Jetappointment 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:C/C:L/I:L/A:N
Injection is remote and unauthenticated (AV:N/PR:N), but execution requires an admin to open the popup (UI:R); cross-context execution in the admin session gives S:C with limited C/I and no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorNVD
DescriptionNVD
The JetAppointment plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'friendlyTime' parameter in all versions up to, and including, 2.5.2.1 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The injected payload is stored in the wp_jet_appointments_meta table via the unauthenticated jet_engine_form_booking_submit endpoint and executes in the administrator's browser when the appointment details popup is opened in the WordPress admin panel.
Executive ViewAI
JetAppointment plugin for WordPress, up to and including version 2.5.2.1, has a stored cross-site scripting issue that can allow malicious script to be planted through a public booking form and later run in an administrator's browser when appointment details are viewed. Successful exploitation could put WordPress administrative sessions and site integrity at risk, making this a priority remediation item despite no public exploit identified at time of analysis. Leadership should care because affected sites may face unauthorized administrative actions or reputational damage if the plugin is internet-exposed and administrators interact with tainted appointment records.
No vendor-released patch identified at time of analysis; interim mitigations include deactivating or removing JetAppointment if not essential, restricting access to the public booking form and wp-admin, applying WAF/virtual patching for friendlyTime and jet_engine_form_booking_submit, sanitizing and validating booking inputs at the server or edge, monitoring wp_jet_appointments_meta and admin activity for malicious script or compromise indicators, enforcing MFA and least privilege for administrators, and isolating or replacing the plugin until a fixed release is available.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
EUVD-2026-91634
GHSA-fpfr-m3qm-9475
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB