Skip to main content

JetAppointment CVE-2026-93875

| EUVDEUVD-2026-91634 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-02 Wordfence GHSA-fpfr-m3qm-9475
7.2
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach public booking form (AV:N, PR:N)
  2. Delivery
    Submit crafted friendlyTime payload
  3. Exploit
    Store XSS in wp_jet_appointments_meta
  4. Execution
    Admin opens appointment popup
  5. Persist
    Script runs in admin session (S:C)
  6. Impact
    Hijack 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

JetAppointment 0 ≤2.5.2.1

Affected Packages

euvd jetappointment no fix

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

Vendor (Wordfence) PRIMARY HIGH
NVD 7.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 6.1 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Low
niche Crocoblock appointment-booking plugin, limited site footprint
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy