Skip to main content

Simply Schedule Appointments EUVDEUVD-2026-89654

| CVE-2026-89294 HIGH
PHP Remote File Inclusion (CWE-98)
2026-09-30 Wordfence GHSA-82vp-79qw-w7jm
7.5
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Send crafted request with malicious ssa_locale
  2. Delivery
    Locale filter runs unconditionally in plugins_loaded
  3. Exploit
    Parameter path-traverses to target .php
  4. Execution
    Plugin includes and executes the file
  5. Impact
    Disclose data or run attacker PHP code

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V5 - File Handling File inclusion prevention, allowlisting
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Command and Control

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation targets the 'ssa_locale' GET parameter handled by the translation/locale filter in class-translation.php, which per the description is registered unconditionally on every request during plugins_loaded with no nonce or capability check - so no authenticated session is genuinely required despite the PR:L rating, and default installations are affected without special configuration. The limiting factor is impact depth: including an already-present .php file executes that file (information disclosure / access-control bypass), but achieving execution of ATTACKER-supplied PHP additionally requires a way to place a .php file on the server (an upload feature or writable path), which is why the CVSS assigns AC:H. All versions of Simply Schedule Appointments up to and including 1.6.12.27 are affected.

Impact

This is a genuine high-priority issue rather than an inflated CVSS score. The provided CVSS 3.1 vector (7.5, AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) already reflects full C/I/A impact over the network, and the description escalates the concern: it explicitly states that exploitation 'does not require authentication in practice' because the locale filter is registered unconditionally during plugins_loaded and the callback performs no nonce or capability check before consuming the raw GET parameter. This directly conflicts with the vector's PR:L (subscriber-level) rating - the description implies PR:N should apply, which would raise real-world severity. The AC:H rating is defensible because achieving full remote code execution depends on an attacker-controllable .php file already existing on the server (e.g., via an upload path); pure Local File Inclusion of an existing .php file, however, needs no such precondition and yields code execution of that file plus information disclosure. No EPSS score, KEV listing, SSVC decision, or POC is provided in the input, so exploitation likelihood cannot be quantified from these signals - the reliance is on the code-level analysis by Wordfence, who linked the exact vulnerable source lines (class-translation.php L50/L67/L108). Net: treat as high priority for any site running this plugin, especially given the credible unauthenticated-in-practice claim.

Exploit ScenarioDerived

A remote attacker sends a crafted HTTP request to a WordPress site running Simply Schedule Appointments (≤1.6.12.27) with a malicious 'ssa_locale' value that traverses to and includes an arbitrary .php file on the server. Because the locale filter is installed unconditionally on every request and performs no capability or nonce check, the include executes the targeted PHP, enabling disclosure of sensitive files or full code execution where an attacker-controlled .php (e.g., an uploaded avatar or media file) can be referenced. No public exploit code is identified in the provided data, though Wordfence has published the vulnerable source locations.

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

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

Alert me

AnalysisAIv1 – Sep 30, 2026

Local file inclusion in the Simply Schedule Appointments WordPress plugin (all versions up to and including 1.6.12.27) allows remote attackers to include and execute arbitrary .php files present on the server via the 'ssa_locale' GET parameter, enabling access-control bypass, disclosure of sensitive data, and PHP code execution whenever attacker-controlled .php content can be placed on the host. The published CVSS 3.1 base score is 7.5 (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H), but our independent assessment rates the vector as PR:N (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H), because the locale filter in class-translation.php is registered unconditionally during plugins_loaded and its callback returns the raw 'ssa_locale' parameter without any nonce or capability check, so the subscriber-level authentication requirement in the published vector is not a genuine barrier in practice. High attack complexity reflects the fact that including an already-present .php file yields information disclosure or access-control bypass, while executing attacker-supplied PHP additionally requires an upload feature or writable path that can host a .php file; no public exploit code has been identified at time of analysis, and there is no CISA KEV entry indicating confirmed active exploitation.

RemediationAI

No vendor-released patched version is identified in the provided data at time of analysis, so the first action is to check the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/aab8f2ae-993b-4893-81cc-1b8a1a4ef84b?source=cve) and the plugin's WordPress.org/Trac pages for a version newer than 1.6.12.27 and upgrade to it as soon as it is published; the referenced Trac lines belong to the vulnerable 1.6.12.27 tag, not to a fix. If no patched release is available, the most reliable compensating control is to deactivate and remove the Simply Schedule Appointments plugin entirely until a fix ships - the trade-off is the total loss of appointment-booking functionality on the site. A less disruptive option is to deploy a WAF or server-level rule that rejects or sanitizes any request where the 'ssa_locale' parameter contains path separators, traversal sequences ('../', '..\'), null bytes, or stream wrappers ('php://', 'file://', 'data://'); the trade-off is that overly broad rules can break legitimate language/locale switching for users, so the rule should be limited to blocking traversal and wrapper patterns rather than the parameter as a whole. Additionally, harden the filesystem against the second stage of the attack by ensuring no upload mechanism or writable web-accessible directory can receive .php files: enforce server-side extension allowlists on all upload handlers, disable PHP execution in the WordPress uploads directory (for example via an Apache/Nginx rule denying .php in wp-content/uploads), and restrict the 'unfiltered_upload' capability to trusted administrators only - these changes may break legitimate file types or plugins that rely on PHP files in uploads, so test before applying. Because the vulnerable filter is installed unconditionally on plugins_loaded with no nonce or capability check, role-based restrictions (removing subscriber accounts, tightening capabilities) do not mitigate the issue and should not be relied upon as the primary defense.

Affected VersionsENISA

Simply Schedule Appointments 0 ≤1.6.12.27

Affected Packages

euvd simply_schedule_appointments 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 affected component is a WordPress plugin written in PHP (tags: PHP, WordPress, LFI, RCE, Information Disclosure), and the CPE cpe:2.3:a:croixhaug:simply_schedule_appointments:* indicates the vendor namespace 'croixhaug' with a wildcard version that does not bound the affected range itself - the version ceiling comes from the advisory, which names 1.6.12.27. The root cause is CWE-98 (Improper Control of Filename for Include/Require Statement in PHP Program, i.e., PHP remote/local file inclusion): user-controlled input is passed into a PHP include/require path without validation. Specifically, the translation/locale handling in includes/class-translation.php registers its filter unconditionally on every request during the plugins_loaded hook, and the callback reads the 'ssa_locale' GET parameter and returns it without nonce verification or capability checks, allowing path traversal or path manipulation to force inclusion of a file outside the intended translation directory. The practical exploitation chain has two tiers: (1) including a .php file already on the server, such as a plugin or theme file, executes that file's code, which can bypass access controls or leak sensitive data through the resulting output; (2) achieving full arbitrary code execution requires the attacker to first get a .php file onto the filesystem (for example via an upload feature or a writable directory), which is why the CVSS attack complexity is rated High. Because the hook is installed on every request regardless of user context, default installations are exposed without any special configuration.

Know when Simply Schedule Appointments 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 7.5 HIGH
AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.1 HIGH

Description states the filter runs unconditionally with no auth check, so PR:N over PR:L; AC:H because full RCE depends on an attacker-placeable .php file existing on the server.

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

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

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

DescriptionCVE.org

The Simply Schedule Appointments plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 1.6.12.27 via the 'ssa_locale' parameter parameter. This makes it possible for authenticated attackers, with subscriber-level access and above, to include and execute arbitrary .php files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where .php file types can be uploaded and included. Notably, exploitation does not require authentication in practice, as the locale filter is installed unconditionally on every request during plugins_loaded and the callback performs no nonce or capability check before returning the raw GET parameter value.

Executive ViewAI

Why It Matters

Organizations running the Simply Schedule Appointments WordPress plugin at version 1.6.12.27 or earlier face a high-severity exposure that could allow unauthorized access to sensitive data and, if an attacker can place a PHP file on the server, code execution. Because no vendor patch is available, this affects any business unit or customer-facing site using the plugin, creating potential data disclosure, integrity, and availability risks. Leadership should prioritize identifying affected sites and applying interim mitigations while planning longer-term remediation.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include deactivating or removing the Simply Schedule Appointments plugin (versions up to 1.6.12.27), applying WAF rules to block or sanitize the ssa_locale GET parameter, disabling PHP execution in uploads and writable directories, restricting file upload permissions, monitoring logs for ssa_locale exploitation attempts, and isolating affected WordPress sites until a vendor fix is available.

Threat Intelligence Overview

EPSS Score
0.6%
Top 51% exploitable
Prevalence
Medium
Popular WordPress appointment-booking plugin, tens of thousands of active installs
Data Quality
3 sources
Confidence: Low

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.6%
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
Total

Priority Score

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

Attack Technique

Local File Inclusion vulnerabilities occur when an application accepts user-controlled input to specify which file should be loaded or executed, typically through functions like PHP's `include()`, `require()`, or `fopen()`.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2026-16540 HIGH POC
7.5 Aug 02

Simply Schedule Appointments WordPress plugin before 1.6.12.6 exposes all site appointment records to unauthenticated us

CVE-2024-7129 HIGH POC
7.2 Sep 13

The Appointment Booking Calendar WordPress plugin before 1.6.7.43 does not escape template syntax provided via user inpu

CVE-2026-15254 MEDIUM POC
6.5 Aug 03

Broken access control in Simply Schedule Appointments WordPress plugin before 1.6.12.11 exposes all customer appointment

CVE-2026-13400 MEDIUM POC
6.1 Jul 27

Stored Cross-Site Scripting in Simply Schedule Appointments up to 1.6.12.2 allows unauthenticated attackers to inject ar

CVE-2026-39493 CRITICAL
9.3 Jun 15

Unauthenticated SQL injection in the Simply Schedule Appointments WordPress plugin (versions ≤ 1.6.9.27) allows remote a

CVE-2026-65508 CRITICAL
9.3 Aug 06

Unauthenticated SQL injection in the Simply Schedule Appointments WordPress plugin (versions up to and including 1.6.12.

CVE-2022-2373 MEDIUM POC
5.3 Aug 29

The Simply Schedule Appointments WordPress plugin before 1.5.7.7 is missing authorisation in a REST endpoint, allowing u

CVE-2024-2341 HIGH
8.8 Apr 09

The Appointment Booking Calendar - Simply Schedule Appointments Booking Plugin plugin for WordPress is vulnerable to SQL

CVE-2024-2342 HIGH
8.8 Apr 09

The Appointment Booking Calendar - Simply Schedule Appointments Booking Plugin plugin for WordPress is vulnerable to SQL

CVE-2026-84764 HIGH
8.8 Sep 02

Cross-site request forgery in the Simply Schedule Appointments WordPress plugin (versions ≤ 1.6.12.23) enables an unauth

CVE-2024-7877 MEDIUM POC
4.8 Nov 05

The Appointment Booking Calendar - Simply Schedule Appointments Booking Plugin WordPress plugin before 1.6.7.55 does not

CVE-2024-7876 MEDIUM POC
4.8 Nov 05

The Appointment Booking Calendar - Simply Schedule Appointments Booking Plugin WordPress plugin before 1.6.7.55 does not

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