全球约七成网站的底层是一栋老基建,2026年10月21日夜里,它塌了一角。 当晚10点(北京时间),PHP官方为8.2到8.5四个分支同步发布安全修复版,修补的正是统称为PHP2Shell的两个核心漏洞——CVE-2026-109618和CVE-2026-109619,CVSS v4.0评分均为9.2,OpenAI当晚出面认领:这些漏洞借助GPT辅助发现。PHP官方公告的定性是,这两个漏洞允许未经身份验证的远程攻击者在目标服务器上执行任意代码。 但先把风险边界说清楚,你自己的电脑和手机不会被直接打穿,出事的是你用过的网站。 必须马上做的3件事,分别对应你自己运营的站、你注册过的账号,以及后面还会越来越多的同类漏洞。36氪知乎微博
为什么叫它"世纪漏洞"
两个漏洞都长在PHP引擎最核心的内存管理里:一个是内存耗尽后,清理流程把没初始化完的数据当正常数据处理;另一个是上一个请求残留的全局状态指向已释放的内存,被后续请求误用。危险之处在于,攻击者甚至不需要等到网站的业务代码开始运行——也就是说,你自己写的代码再干净,底层PHP不修,站点照样可能沦陷。 所有对外提供Web请求的PHP部署方式都在射程内,其中mod_php被官方点名风险最高。36氪知乎
这颗雷埋得比所有人以为的都久。按安全公司Calif的表述,早在2004年,安全研究员Stefan Esser就发现过PHP内存限制机制中的远程代码执行漏洞。 按Wiz方面公开的分析,缺陷代码已在PHP中存在超过十年,覆盖5.4之后的所有版本。 2020年有人向PHP官方报告内存耗尽问题没有换来重视,2024年外部审计中核心开发者已确认这类状态管理缺陷,却因兼容性代价长期搁置——PHP基金会在复盘中把这次拖延定性为一次"结构性失败"。36氪知乎
被压缩到48小时的攻防
漏洞细节在补丁发布前一路外泄。10月20日深夜,Hacker News上"两个CVSS 10.0的PHP远程代码执行漏洞即将公开"的帖子被安全公司watchTowr证实,PHP官方急忙发布预告:原定10月22日的安全更新被迫提前到21日晚10点(北京时间)。 随后,参与发现漏洞的Calif误把一段攻击演示视频发到网上,删除前已被保存传播;一家容器镜像公司又比约定时间提前6个多小时放出打好补丁的镜像,被PHP基金会批评"无视了多方数周的协调工作"。懂行的人拿新旧版本用AI一对比,漏洞在哪就是明牌,而绝大多数网站还没拿到能直接安装的更新包。微博
10月21日当天,出现了罕见的全球"拔网线"。据路透社报道,荷兰、法国、丹麦和芬兰政府因黑客已在利用漏洞而关闭网站,欧洲和亚洲的网络安全机构敦促立即更新。 美国国家安全局的态度更直接:修不了,就先把网站关掉。 日本首相高市早苗在X上发出紧急通知,建议难以及时修复的站点暂时停用;niconico、Pixiv两大PHP重镇进入紧急维护,美国人力资源软件公司BambooHR直接停服并提醒客户发薪业务可能受影响。欧洲时报36氪微博
补丁上线后,攻防按小时计。官方补丁刚发布,实际网络环境里就出现了相关扫描流量。 后续分析发现,其中一条请求的User-Agent直接写着php2shell-scan/1.0。AWS也报告,该漏洞正在被广泛利用于实际攻击中。 过去为这类缺陷构造可靠利用路径,可能需要顶尖安全团队投入数月;如今借助前沿AI模型,一名研究人员一周内就可能完成。知乎知乎36氪
OpenAI的角色:工具,以及正在打开的窗口
“OpenAI曝漏洞"不是标题党。OpenAI在公告中确认,安全公司Calif使用GPT-5.6 Sol发现了PHP的关键漏洞,Wiz也独立发现并报告了这两个漏洞;过去两个月,OpenAI牵头与PHP维护者、Wiz、Cloudflare等协调补丁和缓解措施,赶在10月21日统一公开。 但事实需要摆正:AI不是替人类自己找到了bug。 真正的变化是,那些理论上存在了几十年的底层缺陷,正在被批量验证成"必须立即处置”。量子位36氪
OpenAI还紧急发布了一个skill,帮站长自查自己的网站是否受影响。 更值得记住的是它同时给出的预警:这类漏洞只是已经发现、正在修复的众多重大漏洞的一部分,未来几个月数量将急剧增加。 这正是"个人账号防护"命题成立的原因:下一个爆雷的底层组件,不会提前打招呼。微博量子位
这3件事必须做
第一件:凡是你用PHP跑着的,今天升级并重启。个人博客、WordPress站点、宝塔面板,以及不少NAS和路由器的管理后台,底下都是PHP。先跑一条 `php -v` 对版本:官方修复版为8.2.35、8.3.36、8.4.27、8.5.12,并通过包管理器或重新拉取镜像升级,官方明确建议所有处理Web请求的用户立即更新。 最容易被忽略的是,只换二进制不算完,必须重启Web服务器及PHP处理进程,让常驻的旧工作进程彻底退出、加载修补后的版本。 至于关闭session.upload_progress、限制POST大小这类临时缓解,官方的判断是没有一条能构成完整防护——对这两项漏洞来说,更新是唯一安全的选择。 PHP 8.1及更老的7.x、8.0已经没有官方二进制补丁,要么用官方源码回补自行编译,要么尽快迁到8.2以上——大量宝塔老站和内部系统正卡在这个位置。知乎知乎微博
第二件:宕机过的网站,恢复后先改密码,并顺手消灭"一密走天下"。这几天下线或紧急维护过的站点,恢复服务后应把凭据泄露当作已发生处理:泄露出去的密码,正是攻击者拿去批量撞你邮箱、支付、社交账号的原材料。所以不要只改出事的那个站,凡是复用过的密码全部换掉,优先处理绑了钱和证件的账号。改密码只走官方App或手动输入官网地址,任何"维护通知""强制重置"邮件里的链接都不要点。如果某个常年没人维护的小站存过你的真实手机号甚至证件信息,而你本来也不常用它,注销弃用比改密码更彻底。
第三件:给重要账号补上第二道锁。把邮箱、金融、主要社交和支付类账号的二次验证(2FA)全部打开,优先处理邮箱——它能接收其他站点的"忘记密码"链接,被撞开等于交出全部账号的钥匙。这次事件已经演示了个人端风险的完整链条:服务器端内存漏洞被更快发现、更快武器化,站点被接管,凭据整套外流。个人预判不了下一个爆雷的网站,能控制的是让每一次数据泄露,都不至于直接变成账号被盗。
接下来几天,盯两个信号
一是你常用的网站是否陆续恢复:恢复越慢,说明修复难度越大,这期间先别在里面输入敏感信息。二是发行版和托管厂商的补丁进度,不少Linux发行版和长期支持厂商会提供自己的补丁,是否修好要以对应发行商的安全公告为准。 跑在发行版自带PHP或托管面板上的站点,要等厂商打包后才轮到升级,而那段窗口恰恰是专项扫描流量最密集的时段。自己站着的,别等;纯用站的,改密、开验证两步到位——攻防是专业人士的事,账号是你自己的事。知乎