连账号密码都不用,黑客就可能让网站服务器听命于自己!
就在刚刚,OpenAI公开了一起惊心动魄的幕后行动:GPT-5.6 Sol从全球70%网站都在用的PHP语言里, 挖出了两个致命漏洞。
一旦被利用,攻击者 连账号密码都不用输,直接就能让服务器乖乖执行恶意代码。
甚至,连平日里专门教别人防黑客的荷兰国家网安机构,收到风声后的第一反应,都是赶紧 把自家的官网给关了 !
为了堵上窟窿,OpenAI和PHP维护者 秘密死磕了两个月 ,不惜推翻重来, 连PHP引擎的内存管理机制都改了 。
然而,保密了两个月,却在 最后48小时彻底崩盘 ——
漏洞消息先泄露,倒逼补丁提前一天上线;随后攻击演示视频意外流出,修复镜像提前公开。
还没等全球站长们反应过来打补丁,第一波真实攻击就已经在路上了。
更让人后背发凉的是,OpenAI顺手还埋了个彩蛋:这两个只是开胃菜,另外几项重大漏洞,还在排队抢修中……
这次PHP爆雷,三点看懂:
两个高危漏洞: PHP是网站常用的后台语言。在受影响的部署中,攻击者可能无需登录,就让服务器执行恶意代码。
GPT参与找洞: Calif借助GPT发现漏洞,Wiz也独立发现;PHP维护者主导修复,OpenAI协调各方。
补丁已经发布: 网站运营者需要升级PHP,临时防护不能替代补丁。
PHP突然爆雷,网安机构先关站
这场秘密抢修,最后连负责防黑客的机构都得先关站避险。 补丁还没赶到,官网先下线。
10月21日,荷兰国家网络安全中心NCSC选择先关站,等修复。
关站的还不止它。荷兰司法系统的招聘网站、司法培训机构网站也暂停服务,连给记者传送庭审信息的文件信箱都临时关闭了。
日本财务省同样停了官网的部分内容和服务,紧急检查服务器、安装修复。
引发关站的两个PHP引擎漏洞,合称PHP2Shell, CVSS危险评分都达到9.2分,满分10分 。
其中最危险的后果,叫 远程代码执行,简称 RCE 。网站本来只该处理访问者发来的请求,结果却可能开始执行攻击者指定的代码。
Wiz用当时最新的WordPress、Drupal、Joomla镜像搭建测试环境,复现了无需登录的远程攻击,还验证了从内存中读取密码、令牌和API密钥的攻击路径。
甚至,在某些Apache与mod_php部署中,攻击在网站自己的程序启动前就能发生。 哪怕页面只写了一行「Hello World」,也可能中招。
麻烦在于,用PHP的网站太多了。 W3Techs能识别服务端语言的网站中,69.3%使用PHP。 底层引擎出了问题,大量网站都得跟着检查、升级。
从一个漏洞追出一整类
把时间拨回7月30日,Calif研究者Ryan Austin开始审计PHP。他参与OpenAI的Patch the Planet计划,要用AI帮开源项目找洞、修洞。
到8月1日,多条远程攻击路径就被找了出来。
早在2004年,PHP的内存限制机制就被发现存在远程攻击漏洞。Ryan让GPT-5.6 Sol以此为切入点,检查现有代码里是否还藏着同类问题。
程序处理请求,要把数据临时放进内存。PHP给每次请求划了额度,用光就要中断处理。这种情况叫 内存耗尽,也就是 OOM 。
Calif披露的一条攻击路径中, 不到8MiB的请求数据,处理时却足以耗尽PHP默认128MiB的内存额度。
小小的请求进入PHP后,会被拆成大量记录,每条都要额外占用内存。攻击者就利用这层放大,让程序在特定一步耗尽额度。
按PHP的规矩,这时应该中断操作,转去报错、清理。
偏偏就在这个时候,数据可能只填了一半。
模型在PHP内部存放数据的哈希表里,发现了一个危险顺序:新增记录时, 先把记录数加一,才申请内存、填入内容 。
如果申请内存时正好耗尽额度,程序就会跳走。新记录还没填好,计数却已经加了。
清理程序照着计数检查,便把尚未准备好的内存当成有效记录使用。 相当于表格里一行还没填完,已经被当成完整记录拿来用。
把这种错误变成远程攻击,还要安排相关内存内容、满足具体运行条件。研究者已经在受影响的部署中,让程序执行了攻击者指定的代码。
研究者没停在这个洞上。他们让模型 把刚发现的错误模式写成SKILL.md,一份可以反复使用的审计指引 ,再沿着同样的线索查下去。
这一查,Agent又在负责记录文件上传进度的代码里,找到了另一个问题。
一次请求异常结束, 内存被释放,但处理请求的程序还留着旧地址 。等它接到下一次请求,又可能拿这个地址去读取已经失效的内存。
这就是 释放后使用,也叫UAF 。相当于一条登记已经作废,程序却仍照着旧地址找数据,而那块内存可能已被重新分配。
另一边,Wiz也独立找到了两个漏洞。PHP版本一换、运行环境一变,原来的攻击就可能失效,模型还得跟着分析崩溃、调整验证。
Wiz研究员Sagi Tzadik在X上写道: 「 AI 干了这里的大部分工作。」
给PHP引擎动手术
来源:凤凰网·科技 | 查看原文