---
id: "CVE-2026-109232"
kind: "vulnerability"
aliases: ["CVE-2026-109232"]
title: "WordPress Salon Booking plugin: unauthenticated stored XSS through checkout fields"
severity: "high"
cvss: 7.2
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["package", "salon-booking-system", "self-hosted", "wordpress", "wordpress-plugin"]
not_affected_if: ["default-config", "plugin-updated"]
published_at: "2026-10-16T06:17:06+00:00"
first_seen_at: "2026-10-23T21:57:12+00:00"
updated_at: "2026-10-25T03:29:48+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-109232", "first_seen_at": "2026-10-23T21:57:12+00:00"}]
---

# WordPress Salon Booking plugin: unauthenticated stored XSS through checkout fields

The Salon Booking System WordPress plugin up to and including 10.31.9 fails to sanitize the 'sln[<checkout-field-key>]' parameter. An unauthenticated attacker can store scripts that run in the browser of any user who opens an affected page.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed plugin version in the WordPress admin Plugins screen or with `wp plugin get salon-booking-system --field=version`
- Look for a custom checkout field of type Html or File in the plugin's settings

## Fix

- Update the Salon Booking System plugin to a version later than `10.31.9`
- Until updated, remove custom checkout fields of type Html or File if they are not needed

## Timeline

- 2026-10-23T21:57:12+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-109232

## From the sources

The Salon Booking System – Appointment Booking for Salons, Barbershops & Spas plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'sln[<checkout-field-key>]' parameter in all versions up to, and including, 10.31.9 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. Exploitation requires that the site administrator has configured at least one custom checkout field of type Html or File, which is a standard documented plugin feature.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
