安全机构 Dream 在 2026 年 10 月 26 日披露,攻击者将 PHP2Shell 远程代码执行漏洞(CVE-2026-109618、CVE-2026-109619)与 Fragnesia 内核提权漏洞(CVE-2026-46300)串联,仅凭单次无凭证 HTTP 请求就在 15 分钟内拿下了 25 台某大型厂商防火墙的 root 权限。这批失守设备分布在美、日、韩及台湾地区,CISA 已确认 PHP2Shell 存在在野利用,但拒绝证实安全厂商所谓美国政府关联环境受害的归因叙事。剥离厂商报告里吸睛的 AI 黑客标签,真正击穿边界防线的是底层开源组件补丁与硬件防火墙固件更新之间的时间差。

单次请求打穿内核:PHP2Shell 与 Fragnesia 的 15 分钟配合

企业重金采购的硬件防火墙往往把安全寄托在深层包检测上,但它的 Web 管理后台常常跑着一套老旧的 PHP 环境。此次遭入侵的防火墙管理服务器运行在 PHP 8.0.30 上,且配置了较高的内存上限,直接给攻击者提供了内存操纵空间。

攻击者先向 PHP 的 session.upload_progress 机制发起 4 阶段内存排布攻击:先后注入约 383MB 和 500MB 的超长文件名POST请求耗尽内存,迫使系统进入可预测的内存布局,并在响应头的 Set-Cookie 中泄露出 libphp.so 的基地址。拿到地址偏移量后,攻击者伪造哈希表析构函数指针指向系统命令函数,以 nobody 权限实现远程代码执行。

为了绕过 SELinux 对 Web 进程的限制,攻击者在同一请求中无缝衔接了 Linux 内核 XFRM ESP-in-TCP 子系统的 Fragnesia 提权漏洞(CVE-2026-46300)。该漏洞利用页缓存写入机制,逐字节精准覆写仅有 774 字节的 /etc/pam.d/su 认证文件,将其替换为免密放行的 pam_permit.so。从建立未授权 HTTPS 连接到植入 103 字节的持久化 root webshell,全流程耗时不到 15 分钟。

PHP2Shell + Fragnesia 单请求提权与内网渗透链路 1. 内存耗尽泄露 约 883MB 流量冲击 Cookie 泄露基地址 CVE-2026-109618 2. 远程代码执行 伪造 HashTable 项 获取 nobody 权限 CVE-2026-109619 3. 内核提权 Root 覆写 774B PAM 文件 免密 su 突破 SELinux CVE-2026-46300 4. 域控横向移动 8 端口反向 SSH 隧道 攻陷内网管理服务器 解密 LDAP 凭证喷洒

这种高强度的内存挤压在实战中也暴露出了明显的物理副作用。攻击者在 10 月 23 日 18 时 14 分攻破第一台目标机构防火墙后,高达近 900MB 的畸形利用流量直接导致该设备宕机离线,攻击者随后两小时内发起了 240 次自动探测也没能等来设备重启。直到次日针对同一机构的第二台防火墙发起单独攻击并建立 8 端口反向 SSH 隧道,才在 90 分钟内顺着内网拿下了集中管理服务器与 Active Directory 域控的 LDAP 明文凭证。


剥离 AI 助攻噱头:真正致命的是两日补丁时差

安全厂商在报告中重点强调了攻击基础设施里残留的 Claude Code,以及集成了 DeepSeek 与 Kimi 模型的 aiscan 平台,试图将其塑造为一起由大模型驱动的国家级行动。但第三方技术审计与媒体质疑指出,这些痕迹仅能证明攻击者把商用大模型当成了写注释和统一约 40 个后渗透脚本格式的效率工具。

真正决定这 25 台服务器命运的是核心漏洞开发,而这部分恰恰依赖传统的人工逆向工程。由于不同固件版本的内存偏移量存在差异,攻击者在实验室里针对该防火墙的各个系统分支提取了 11 份 JSON 配置文件,逐一核算 libphp.so 的 SHA256 哈希与堆内存几何参数。其中 8 份仅完成静态计算的临时配置被搁置,只有真正在虚拟机里跑通内存校准的 PHP 8.0.30 分支才被投入实战。没有哪家通用大模型能替攻击者完成这种精细到字节级的堆布局调试。

攻破防线的从不是玄乎的 AI 黑客,而是躺在公网上的旧固件。

比 AI 工具更值得企业安全团队复盘的,是一条极为紧凑的时间线。PHP 官方早在 2026 年 10 月 21 日就已经发布了修复 CVE-2026-109618 与 CVE-2026-109619 的安全版本(涵盖 PHP 8.2.35、8.3.36、8.4.27、8.5.12)。而攻击者通过 FOFA 筛出全球 19000 台暴露管理接口的防火墙、完成 240 个高价值目标的过滤并启动批量收割,发生在 10 月 23 日至 24 日。

补丁抢跑与防线失守:19,000 台暴露设备的漏斗筛选 公网暴露总数 19,000 台 存活且回显版本 5,000 台 匹配地区与 8.0.30 240 台 最终失守 Root 25 台(含内网管理服)

这意味着上游开源社区的补丁比黑客的总攻早到了整整两天。但尴尬在于两点:涉事防火墙内部捆绑的是早已被官方停止安全支持的 PHP 8.0.30 分支,不在此次 PHP 官方直接发版修复的 8.2 至 8.5 序列中;同时,网络设备厂商将上游 PHP 补丁向旧版移植、打包成固件并由政企客户走完变更审批,动辄需要数周时间。

  • 风险.硬件安全设备的黑盒固件往往滞后于上游开源组件数个大版本,一旦管理接口对公网敞开,上游公布补丁的时刻就是攻击者逆向出利用链的倒计时起点。

对于政企网络管理员而言,与其去排查流量里有没有 AI 生成代码的特征,不如立刻对照两项硬指标自查:第一,立即切断防火墙 Web 管理接口的公网访问,强制要求通过跳板机或独立带外网络(Out-of-Band)登录;第二,检查内网 Active Directory 域控策略,此次受害机构正是因为将域账户锁定阈值设为 lockoutThreshold=0(永不锁定),才让攻击者在拿到管理服务器权限后,得以肆无忌惮地对全员账户发起无限次密码喷洒。至于那家至今未被公开点名的大型防火墙厂商何时能把 PHP 8.0 的向后移植补丁送到全部 19000 台暴露设备上,才是接下来几周真正决定受害规模会不会突破 25 台的唯一变量。