Skip to main content

Salon Booking System CVE-2026-15070

| EUVDEUVD-2026-42784 HIGH
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-07-10 Wordfence GHSA-77ww-fvvh-5297
8.8
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Recon
    Host malicious page with forged setCustomText form
  2. Delivery
    Lure logged-in admin to click link
  3. Exploit
    Browser sends CSRF request with admin session
  4. Install
    Payload breaks out of PHP string literal
  5. C2
    Plugin writes PHP into translate-constants.php
  6. Execute
    Request the file to execute code
  7. Impact
    Full server compromise

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

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 a logged-in WordPress administrator (someone authorized to trigger the setCustomText AJAX action) be tricked into performing an action such as clicking an attacker-supplied link or visiting a malicious page while authenticated - this admin interaction is mandatory (CVSS UI:R) and is the primary limiting factor. The attacker themselves needs no account (PR:N) and no special server configuration: any default install of the Salon Booking System - Free Version plugin at version ≤ 10.30.32 is vulnerable because the flaw is missing/incorrect nonce validation on the setCustomText handler plus insufficient sanitization that fails to neutralize ' ( ) ; $ and [] characters, and the plugin directory must be web-accessible for the written translate-constants.php to be reachable and executed. The window closes if the admin is not logged in when the forged request fires.

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H = 8.8 High) accurately captures a network-reachable, low-complexity flaw with no attacker authentication (PR:N) but mandatory administrator interaction (UI:R) that yields full confidentiality, integrity, and availability loss via code execution. The UI:R requirement is the dominant limiting factor: exploitation is not automatable/wormable at scale because it depends on social-engineering a specific privileged user, which is why an EPSS-style mass-exploitation signal would be expected to be low. No EPSS score, SSVC decision, KEV entry, or public POC was provided, so this is not confirmed as actively exploited - it is a genuinely high-impact CSRF-to-RCE that in practice ranks as a targeted rather than spray-and-pray threat. Priority is high for any site running the plugin, but the practical bar (tricking an admin) is meaningfully higher than a pure unauthenticated RCE.

Exploit ScenarioDerived

An attacker crafts a malicious web page or email link containing a hidden auto-submitting form that POSTs a setCustomText request with a 'value' payload engineered to break out of the PHP string literal (using quotes, parentheses, $ and semicolons). When a logged-in site administrator visits the page, their browser silently sends the forged request with valid session cookies, causing the plugin to write attacker PHP into translate-constants.php. The attacker then requests that file directly to execute their code on the server. No public POC is identified at time of analysis.

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

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

Alert me

AnalysisAIv1 – Jul 10, 2026

Remote code execution in the Salon Booking System - Free Version WordPress plugin (all versions ≤ 10.30.32) lets a remote attacker write attacker-controlled PHP into the plugin's web-accessible translate-constants.php file by abusing the unprotected setCustomText AJAX handler. Because the handler lacks proper nonce validation (CWE-352 CSRF), an unauthenticated attacker who tricks a logged-in administrator into clicking a crafted link can achieve full server-side code execution. Reported by Wordfence with a CVSS of 8.8; there is no public exploit identified at time of analysis and it is not on CISA KEV.

RemediationAI

Upstream fix available (changeset 3600791 in the WordPress plugin SVN repository); a released patched version number is not independently confirmed from the provided data, so update to the latest available Salon Booking System - Free Version release above 10.30.32 and verify via the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/301ad19a-f99c-45c8-83a7-d74e1a260556) that the setCustomText handler now enforces nonce validation. If you cannot upgrade immediately, apply compensating controls: block or restrict web access to the plugin's translate-constants.php file (and ideally the whole plugin directory) at the web server or WAF layer so an injected PHP file cannot be executed - note this may break the plugin's custom-text/translation feature; deploy a WAF rule enforcing referer/nonce checks on the admin-ajax setCustomText action; and instruct administrators to log out of wp-admin when not actively managing the site and avoid clicking untrusted links while authenticated, since the exploit rides an active admin session. Consider temporarily deactivating the plugin on high-value sites until patched.

Affected VersionsENISA

Salon Booking System – Free Version 0 ≤10.30.32

Affected Packages

euvd salon_booking_system_free_version 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 (cpe:2.3:a:wordpresschef:salon_booking_system_-_free_version) that manages salon appointments and exposes AJAX actions through WordPress's admin-ajax dispatch. The setCustomText action (SetCustomText.php) feeds a POST 'value' into SLN Settings logic that persists translated UI constants by writing a PHP file (translate-constants.php) to disk via file_put_contents(). The root-cause class is CWE-352 Cross-Site Request Forgery: the handler performs a state-changing, file-writing operation without a valid, verified nonce, so any forged request carrying the administrator's ambient session cookies is honored. A secondary weakness compounds it - sanitize_text_field() is applied to 'value' but does not strip the single quotes, parentheses, semicolons, $, and [] characters needed to break out of the PHP single-quoted string literal the value is interpolated into, turning a settings write into arbitrary PHP injection.

Know when PHP 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 8.8 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Unauthenticated attacker (PR:N) exploits a network CSRF but needs admin to click (UI:R); reliable string-literal breakout keeps AC:L, and RCE yields full C/I/A.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/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
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

The Salon Booking System - Free Version plugin for WordPress is vulnerable to Cross-Site Request Forgery in all versions up to, and including, 10.30.32. This is due to missing or incorrect nonce validation on the setCustomText function. This makes it possible for unauthenticated attackers to inject arbitrary PHP code into the web-accessible translate-constants.php file within the plugin directory, enabling remote code execution on the server via a forged request granted they can trick a site administrator into performing an action such as clicking on a link. sanitize_text_field() is applied to the POST 'value' parameter but does not neutralize the characters - single quotes, parentheses, semicolons, $, and [] - required to break out of the PHP string literal into which the value is interpolated before being written to disk via file_put_contents().

Executive ViewAI

Why It Matters

The Salon Booking System WordPress plugin (versions ≤10.30.32) contains a critical vulnerability enabling remote code execution when an attacker tricks an administrator into clicking a malicious link, leading to complete server compromise. No public exploit identified at time of analysis, but the vulnerability's ease of exploitation and high prevalence of WordPress plugins create significant organizational risk.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) immediately disable and remove the plugin; (2) if removal is not possible, configure WAF rules to block /wp-admin/admin-ajax.php requests with action=setCustomText; (3) implement file integrity monitoring for the plugin directory, specifically tracking translate-constants.php for unauthorized creation or modification; (4) enable enhanced logging of all AJAX requests and PHP file write operations; (5) restrict WordPress administrative access to specified IP addresses only.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Low
niche salon-appointment WordPress plugin, limited install base
Data Quality
5 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.3%
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
Very High
Technical Impact
Total

Priority Score

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

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

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

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

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

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

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

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

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

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

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