PHP2Shell:当 AI 自己挖出了 PHP 的致命 RCE

最近一条安全新闻让我眼前一亮:一家云安全公司 Wiz 用 AI 自主挖出了一个影响几乎所有 PHP 版本的远程代码执行漏洞,编号 CVE-2024-4577(也就是他们命名的 "PHP2Shell")。这事的重点不只是"又一个大漏洞",而是它标志着一种新的挖洞范式——AI 挖洞,已经从 PPT 概念变成了能在野命中 critical 级别 CVE 的真实能力。
漏洞本身的技术细节并不复杂。Windows 下的 PHP 在使用 Best-Fit 字符编码转换时,会把一些特殊的 Unicode 字符"翻译"成 ASCII 的下划线和连字符。攻击者可以借此绕过原本用来防止参数注入的转义逻辑,把任意参数塞进命令行,最终执行 PHP 代码。换句话说:你不需要登录、不需要认证,只要一个 HTTP 请求,就能让服务器变成你的 shell。
影响范围相当夸张。任何运行在 Windows + PHP-CGI 模式下的服务器,从 PHP 8.3 一路到早已 EOL 的旧版本,全部中招。补丁在 8.3.8 / 8.2.20 / 8.1.29 之后就出了,强烈建议还在用 Windows + CGI 组合的团队立刻检查。
但比起漏洞本身,我更想聊这次发现的"方式"。
Wiz 的研究团队并没有手动 fuzz 几个月。他们构建了一个 AI Agent,让它自主阅读 PHP 源代码、理解 CGI 协议的行为细节、生成攻击载荷、跑在沙箱里验证。这套系统跑了不到 24 小时,就把一个潜伏了十几年的"字符编码绕过 CGI 参数注入"路径翻了出来。这个洞其实并不新——它在 2012 年以 CVE-2012-1823 出现过一次,被认为"已经修过了",但 Windows 特有的 Best-Fit 行为让它以另一种形式复活了。
这给安全圈提了一个有点冷的醒:过去我们以为"已经修过的洞"再挖一遍性价比低,AI 偏偏擅长做这种"重新审视历史补丁"的工作。Agent 可以系统性地枚举每一种字符编码、每一种调用入口、每一种参数解析路径,在人不会去钻的角落里找出复活路径。
我自己的判断是:未来一两年,"AI 挖洞 vs AI 修洞 vs AI 攻击"会进入一个非常快的循环。安全研究的门槛被大幅拉低,攻防两侧都站在同一条起跑线上,拼的不再是人海战术,而是谁的 Agent 更会"提问"、更会"在源码里迷路后还能走出来"。
对开发者来说,这次事件的实际动作其实只有两条:
- 检查你的 PHP 是否在 Windows + CGI 模式下运行,是的话立刻升到最新版本。
- 不要让 AI 工具的输出绕过代码评审和沙箱验证——"Agent 自己挖出了洞"很酷,但同样的 Agent 也很可能正在别人手里对着你的资产跑。
AI 不会让漏洞消失,它只会让漏洞的发现速度,超过人类修补的速度。准备好被卷到。
来源:Hacker News
仅有一条评论