CISA 确认 PHP2Shell 两个 9.2 分 RCE 遭在野利用,列入 KEV 并限联邦机构 10 月 29 日前修复
CISA 10 月 26 日把 PHP2Shell 两个 CVE 列入 KEV 并限联邦机构 10 月 29 日前修复,官方确认在野利用。

PHP2Shell 指的是 2026 年 10 月 21 日 PHP 官方修复的两个未认证远程代码执行漏洞(CVE-2026-109618 与 CVE-2026-109619,CVSS v4.0 评分 9.2)。10 月 26 日,美国网络安全和基础设施安全局(CISA)把这两个编号列入已知被利用漏洞目录(KEV),目录页载明两个条目的 dateAdded 均为 2026-10-26、修复期限(due date)均为 2026-10-29。补丁发布五天后,在野利用从各方互相矛盾的说法,变成了美国官方的正式认定。
要点
- KEV 目录里两个条目分别叫 PHP Memory Corruption Vulnerability 与 PHP Stale Internal Request-State Vulnerability,known ransomware use 一栏填的是 Unknown,CISA 没有公布利用者是谁。
- 研究者 Adel Karimi(0x4D31)公开的蜜罐数据记录了 10 月 22 日的利用尝试与 10 月 24 日的确认 RCE,共 35 个案例文件夹,含 HTTP 抓包和 Apache、PHP、Tetragon 运行时记录;Wiz 称这份证据是促成 KEV 列入的「likely contributing factor」。
- Wiz 的遥测同时显示:公网暴露的易受攻击机器几天里下降约 67%,但其捕获的公开流量里内存泄露阶段「每一次运行都失败」,没有观察到一次端到端成功的利用。
背景
在野利用是 PHP2Shell 事件里拖得最久的悬案。本站 10 月 22 日的 PHP 修两个 9.2 分 RCE 记录过当时的矛盾:OpenAI 说「there were no reports of exploits in the wild」,watchTowr 在补丁发布当天写「Exploited in the wild: Yes」,AWS 则称 MadPot 蜜罐遥测里 10 月 17 日已出现利用尝试。那篇条目落笔时,CISA 的 KEV(catalogVersion 2026.10.21,共 1754 条)还没有收录这两个编号。
KEV 的含义很具体:进入目录的漏洞被 CISA 认定为已确认在野利用,联邦民事机构必须按期限处置。列入 KEV 等于官方给悬案盖了章,答案站在了 watchTowr 和 AWS 一侧。
KEV 期限
两个条目的关键字段如下,取自 CISA KEV 目录页(2026-10-28 查询):
| CVE | KEV 名称 | 列入 | 期限 |
|---|---|---|---|
| CVE-2026-109618 | PHP Memory Corruption Vulnerability | 2026-10-26 | 2026-10-29 |
| CVE-2026-109619 | PHP Stale Internal Request-State Vulnerability | 2026-10-26 | 2026-10-29 |
10 月 29 日是 KEV 的 due date 机制给出的期限:条目的 required action 要求按 CISA 的 BOD 26-04 指引应用厂商缓解,无法缓解的要停用,并逐项评估资产的互联网暴露面。TechCrunch 在 10 月 27 日的报道里把它表述为限联邦政府内的民事机构三天内修复。边界要说清:期限约束的是美国联邦民事机构及其供应链,不是所有跑 PHP 的站点;CISA 也没有公布利用者的细节。KEV 条目本身不含评分与受影响版本,CVSS v4.0 9.2 的评分出自 php.net 10 月 20 日的预告公告与 GitHub 安全公告 GHSA-w8hw-w9fx-j79w(后者的 4.0 向量为 CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N)。
蜜罐与遥测
CISA 的认定有两类证据垫底。第一类是实锤:0x4D31 的 honeypot-data 仓库用两份观察报告记录了 10 月 22 日到 24 日的过程,先是 initial exploitation attempts,24 日转为 confirmed RCE;证据目录 2026-10-24-rce-evidence 下有 35 个案例文件夹,保存 HTTP 抓包与 Apache、PHP、Tetragon 和信号记录,源 IP 有意未脱敏、直接作为 IOC 公开。
第二类是反面数据。Wiz 自建的 PHP-CGI 与 Roundcube 蜜罐捕获的尝试全部失败;两套针对 PHP-CGI 的利用工具链里,老的一套死在 post_max_size 限制上,新的一套(mk_a1.py / mk_leak_b.py)能稳定触发内存耗尽(HTTP 500),但泄露进程内存的阶段一次都没成功。原因在环境差异:泄露阶段按官方 php:8.4.26-apache 镜像、128 MB 内存上限调的堆布局,构建、扩展或限额一变就偏移;把请求钉在同一个 worker 上的手法也扛不住公网延迟与超时。Wiz 还观察到冒名工具——打着 PHP2Shell 旗号做会话投毒加本地文件包含,目标是真实站点上并不存在的实验室端点 lfi_sink.php。可行性本身没有疑问:Wiz 私下从合作方拿到过可用 exploit,并在 php2shell.com 演示过自己的版本。
各方说法
Wiz 的修复面数字(属其自有遥测,文中带口径 caveat):披露后几天内,易受攻击的互联网暴露机器的日活跃数下降约 67%;跑 PHP 7.3 及更老版本的暴露机器占比从 8.3% 降到 5.7%;至少有一台暴露机器的组织减少约 47.9%;披露一周后,最初受影响的组织中不足 53% 仍处于暴露状态。他们的结论是修复仍然必要,并预期堆布局与 worker 钉定这两道壁垒会随高水平攻击者的适配而消失。
Unit42 的撤回是另一面的注脚。这份威胁简报 10 月 23 日 12:30(太平洋时间)的更新曾把一起欧洲政府机构入侵的初始访问与 PHP2Shell 关联,10 月 25 日 14:15 撤回,原话是「We are unable to confirm that initial access is associated with the specific PHP2Shell CVEs」与「We have retracted our previous update from October 23」。撤回发生在 KEV 列入的前一天。同一份简报引 Cortex Xpanse 遥测称潜在暴露实例超过 2260 万,最终立场是在野利用未获确认——它与官方认定并存,差的是「确认到哪一步」:CISA 接受了确认 RCE 的蜜罐证据,Unit42 没有把任何真实入侵归到这两个 CVE 上。
还有一批说法属于 TechCrunch 的转述、未见于一手公告,引用时需要带出处:漏洞两年前已被发现、PHP Foundation 当时判定没有实际可行的利用方式所以未修、Calif 借助 AI 模型找到了把两个沉睡漏洞串成利用链的路径;该文还转引 Reuters 称 PHP Foundation 按其主管的说法只有一名全职员工。
编辑判断
悬案到此落地:官方立场与蜜罐证据一致,「公网上还没有人打出完整攻击链」也仍然成立,两件事同时为真。对运维的含义是时间买到了但不多——六七成的暴露面在几天内完成修复,证明升级可行;而 Wiz 预期现有壁垒撑不了太久。第一分钟还是老三样:跑 php -v 确认分支,8.2 到 8.5 升到 8.5.12、8.4.27、8.3.36 或 8.2.35;在 KEV 目录检索两个编号,确认自己的产品或客户有没有落在联邦供应链的合规义务里;共享主机用户直接问主机商。10 月 29 日是给联邦及其供应商的压力线,不是普通站点的安全边界。仍不清楚的部分照旧留白:利用者是谁、公开视野之外有没有成功入侵,CISA 没说,蜜罐证据只能证明蜜罐上发生过。补丁 diff 一直是攻击者的阅读材料,修复 PR 公开 10 分钟即遭探测 里的场景在这里同样适用。