10月21日东京时间晚上9点55分,日本首相高市早苗在 X 上发帖说有一个请求要大家今晚紧急处理。她要求网站的运营方确认自己是不是用 PHP,准备在晚上11点补丁发布以后立刻更新;如果一时没办法更新的话暂时停站也是有效的对策之一(ウェブサイト等を一時的に停止させることも有効策の一つ)。据 zakzak 报道标题,这个帖子在两小时内获得超过2000万次浏览。BASE,Cygames,pixiv,NicoNico,静冈银行,阪急铁道等机构都在当晚进行了预防性的停服。
这并非临时起意。相关漏洞早在 2020 年就以普通软件错误形式被提交,2024 年安全审计再度发现同一问题,但因利用方式未获证实,修复工作再度搁置两年。直到 2026 年 8 月,Calif 在 AI 帮助下于 7 月 30 日开始审计 PHP,8 月 11 日报告漏洞,8 月 14 日交出可用的远程代码执行概念验证代码。
同一周里还发生了另外两件事:Claroc 从商业被动 DNS 历史库中查得 6,800 多个去噪后的 Muse 分享主机名;Meta 表示在审查报告期间暂停分享功能;Anthropic 发布了 Claude 参与设计的蝎毒结合蛋白的实验数据,211 个设计中 17 个能结合毒素,0 个被证实能中和毒性。下面分别看这三件事。
让日本首相深夜发帖的,是 PHP
内核在同一天修了两个远程代码执行漏洞。根源在 PHP
处理单个请求时的底层内存机制。PHP
会为每个进入的网页请求准备一块独立内存,等请求结束时再统一回收。配置项
memory_limit
用来限制单个请求允许占用的最大内存。一旦请求在分配内存时超出这个上限,引擎就会强行中断当前流程,一部分收尾清理代码因此来不及跑完。在线上环境里,负责处理请求的
worker
是常驻后台、循环接单的工作进程,不会随单个请求结束而退出。同一个
worker
紧接着去接下一个请求时,就可能把上一个请求没初始化完的结构,或者已经释放掉的内存,直接当成有效状态继续读写。这次修复的两个漏洞同源,只是触发位置略有不同。CVE-2026-109618
发生在请求启动阶段,引擎在解析 multipart
表单和初始化内部表时因内存超限中断,收尾逻辑把半成品当成了有效状态。CVE-2026-109619
则是前一个请求发生致命错误后,全局状态未能重置,后一个请求在初始化前就读取了残留的悬空状态。攻击者只需发送特制的
multipart 请求即可触发这一过程。在 Apache mod_php(把 PHP
直接嵌进 Apache
的旧部署方式)的默认配置下,攻击可以在应用代码运行前直接得手;在更常见的
PHP-FPM(PHP 作为独立进程池、由 Web
服务器转发的常见部署方式)架构下,则需要配合应用执行期的会话或反序列化路径。安全公司
Calif 在 技术报告
中基于这套机制,在 WordPress、Drupal、Joomla 等 11
个主流应用上演示了未认证远程代码执行。
PHP 的 memory_limit 远程漏洞早在 2004
年就被公开研究过,这次出事的同类隐患也在几年前露过面。2020 年,有人在
PHP 缺陷追踪系统里提交了编号为 #78876 的报告,指出超长 multipart
变量会导致内存耗尽,同时留下无法清理的临时文件。当时维护者只把它当成普通软件错误,没有按安全问题处理。2024
年,开源技术改进基金(OSTIF)与 Quarkslab 对 PHP
核心做了一次系统安全审计,一共挑出 27 个问题,其中 17 个涉及安全、3
个定为高危。审计报告再次点出了同一处内存耗尽隐患。但当时没人能拿出稳定可用的利用代码,而重构内存中断路径又会牵动大量扩展的兼容性与运行性能,修复工作就这样搁置下来。PHP
基金会在 10 月 21 日的 安全发布说明
里坦承这是一次结构性失败,根源在于过去安全决策依赖全员共识,加上维护资源不足。团队此后已将安全事务改为多数票决,并扩编了生态安全团队。
扭转局面的是利用开发的成本大幅降低。安全公司 Calif 响应 OpenAI 和 Trail of Bits 在 2026 年 6 月 22 日共同发起的 Patch the Planet 项目邀请,于 7 月 30 日启动了 PHP 源代码审计,并在仅仅两天后的 8 月 1 日找到了第一个从内存耗尽到远程代码执行的路径。Calif 团队在 8 月 11 日上报了第一个漏洞,8 月 14 日交出了可用的概念验证代码,PHP 团队于 8 月 15 日确认;8 月 21 日,Calif 团队又上报了第二个漏洞。据 PHP 基金会透露,OpenAI 在 8 月 11 日当天也独立报告了同一根因,并在 9 月 18 日补充了更多触发向量。云安全公司 Wiz 在 研究博客 中透露,其团队用 Gemini 4 Argon 和 GPT-5.6 Sol 在 8 月 19 日独立发现了第一个漏洞,并于 8 月 24 日一并上报了两项缺陷。谈到如何打通第一个利用路径时,Calif 团队解释,最初的发现既没使用专门的测试框架,也没调用外部无法获取的模型,而是把 PHP 二十年的漏洞脉络当作提示方向,从过往记录里摸索能用的原语。底层缺陷在 2020 年和 2024 年早有记录,这并不意味着 AI 自主发现了未知漏洞;AI 真正缩短的是把陈旧隐患变成稳定利用程序的工程周期。
2026 年 10 月 21 日 14:00 UTC,PHP 正式发布 8.5.12、8.4.27、8.3.36 和
8.2.35 四个版本。作为漏洞编号分配机构的 PHP 官方(CNA)在 CVSS 4.0
标准下给两个漏洞均评出 9.2
分,标注攻击复杂度高(AC:H)且需满足前置条件(AT:P)。美国国家漏洞数据库(NVD)另按
CVSS 3.1 低攻击复杂度(AC:L)给出 9.8 分,Red Hat 针对 RHEL 按 CVSS 3.1
评为 8.1 分,严重程度为 Important,此前论坛泄露帖里的 10.0
分并不属实。核心修复提交 31c0ea7 共改动 423 个文件,新增
11,556 行、删除 1,017
行代码。这次修改去掉了内存超限时的强行跳转,改为软性超限先记待处理错误、运行到虚拟机安全点再退出,硬性超限直接终止进程,并新增默认
200%、上限 1G 的配置项
memory_hard_limit_percent。虽然上游正式发版只覆盖 8.2 至
8.5(其中 8.2 将于 2026 年 12 月 31 日停更),但 php.net 为已停更的
7.4、8.0、8.1 提供了最小源码移植补丁,Debian 与 Ubuntu
也向旧分支回植了修复。按 W3Techs 统计,在已知服务端语言的网站中 PHP 占
69.3%,Wiz 提到的约 70% 即这一口径的约数。VirusTotal 按 IP
地址而非网站口径扫描全球网络,共扫到约 510 万个 PHP IP 地址,其中 380
万个至少开放一个端口,在 banner 披露版本的 IP 中,75.8 万个仍在跑 5.4 至
8.1 等停更分支,8.5 万个运行 9 月 24 日发布的最新补丁前版本。Talos
基于开源情报初步估计,约半数 PHP 系统可能拿不到补丁。
在补丁真正落地之前,披露本身也一波三折。10 月 20 日 15:00 UTC,两个预留的 CVE 编号和错误的发版时间、错误的 10.0 评分开始在论坛流传;PHP 团队于 19:30 UTC 发布预公告,把发版时间从 10 月 22 日提前到 10 月 21 日 14:00 UTC。当晚 20:00 UTC 左右,Calif 误发了演示视频,删掉以后副本仍在外传。21 日 02:29 UTC,VirusTotal 收到第一个泄露的利用归档;03:02 UTC,Cloudflare 为免费和付费 Web 应用防火墙(WAF)默认启用拦截规则;07:41 UTC,Chainguard 提前 6 小时 19 分钟放出包含补丁的容器镜像,CEO Dan Lorenc 在接受 The Record 采访时称这是权衡风险后的判断性决定。不过截至 10 月 21 日,美国 CISA 的已知被利用漏洞目录(KEV)并未收录这两个编号,利用状态标为无;watchTowr 观察到的在野利用尝试均未成功,CISA 与 Talos 也未见成功入侵,仅有 Hadrian 单方面声称看到规模化利用。从 2004 年公开相关研究、2020 年提交错误、2024 年审计搁置,到 2026 年约两周内从开始审计做到可用 PoC,这条长线提示,评估现实利用风险时还应考虑攻击开发成本的变化。一旦模型把利用开发压进约两周,决定后果的就变成了补丁回植、长尾升级与披露协调这层物流。
第二个意外发生在 Meta 的个人 AI 助手 Muse 上。Muse 于 2026 年 9 月 8
日在美国上线,支持 iOS、Android 和 muse.ai
网页端。它的分享功能可以把一段对话或生成物发布成一个独立的网页,按设计,任何人拿到链接就可以直接查看。理论上,只要用户没有把链接贴在公开的网页或社交媒体上,别人就看不到。但在
Meta 的域名拼接方式下,当系统生成一个形如
muse.ai/s/<title-slug>-<id>
的分享链接时,页面内容并不是从 muse.ai
这一个主机加载,而是从一条单独的子域名加载,即
<title-slug>-<id>.cf.metaaiusercontent.com。每条分享都有自己的子域名,最左边的部分是会话标题加随机
ID,比如
home-sale-budget-9f21c8a3.cf.metaaiusercontent.com。这些子域名都共享
cf.metaaiusercontent.com
这个后缀,但完整主机名都是不一样的。只要持链人用浏览器访问过一次链接,浏览器在加载页面之前就必须先向
DNS 发起解析请求,查出这条子域名对应的 IP
地址。解析请求在经过递归解析器(代替用户逐级查询域名的解析服务器)时,旁路运行的商业被动
DNS(passive DNS)服务会把域名查询的历史记录、结果与时间戳记下来。这类数据库不记录具体的请求者是谁,也不保存网页正文,只保留主机名本身;但每条主机名的最左端都带有可读的会话标题,于是历史解析库就变成了一个可按标题检索的清单。
链接末尾的随机 ID 虽然使用 base36 编码,对 76 个 slug
的抽样显示,长度在 12 到 21 个字符间(多在 13 到 17
位),暴力穷举不可行。但外部查询者根本无需尝试,因为完整主机名已暴露于被动
DNS 库。同样,网站根目录的 robots.txt
仅约束搜索引擎爬虫的抓取协议,无法影响底层域名解析记录,Claroc
的发现也未依赖搜索引擎。安全研究机构 Claroc 在 GhostShares
研究报告 中指出,他们仅对内容域名做一次被动 DNS
查询,过滤通配解析噪声(通配 DNS
会使任何随机子域名解析成功,需先去除此类噪声)后,获得 6,800
多个分享主机名。每个主机名代表至少被解析过且被该供应商观测到的分享链接,并非用户创建的所有分享,也不是
6,800 份敏感文档。Claroc
打开其中几百个页面,发现六类敏感内容,包括候选人准备某 AI
实验室高管面试的笔记(含内部联系人与会议时间)、营销公司营收复盘、贷款申请、银行欺诈提醒、房产投资回报测算和全员休假表。公开平台
urlscan 上有 83 条分享页记录,Wayback Machine 存有 40 个主机名。
Claroc 于 10 月 8 日通过 Meta 漏洞赏金计划报告漏洞,10 月 18 日公布研究,Ars Technica 在 10 月 20 日的报道中引述 Meta 声明,称已暂停分享功能,并称正在评估如何调整链接的发现方式。Claroc 在 10 月 20 日复测月初曾能打开的 40 条分享链接时,页面全部打不开;10 月 21 日的另一次核查显示内容主机返回 503,Meta AI 帮助页仍写链接不会过期、可继续转发,但该帮助页并非 Muse 专属说明。对比 2025 年两起类似事故,ChatGPT 有 4,500 多条分享链接上 Google 索引,是分享后多了个“允许搜索引擎收录”的开关;Grok 有超过 37 万个会话上 Google 索引,是点击分享就默认公开且没警告。那两次的发现通道都在搜索引擎索引层面,可通过 noindex 或去索引请求限制后续发现,但不能据此收回已扩散的副本。Muse 没有搜索开关,页面本来也只对持链人可见,却因把标题放进必定触发解析的子域名,把记录写进第三方 DNS 历史库,撤销页面也不等于清除这些历史记录。
把标识符放在 URL
路径还是子域名,不只是路由选择,还决定这个名字会不会进入公开的解析记录。高熵随机串能防盲猜,防不住通道本身的公开记录;一旦混入可读标题,流量日志就成可检索目录。猜不到链接、搜索引擎搜不到链接、无权限者看不到内容,本是三件完全独立的事。unlisted(不公开列出、仅持链人可访问)只是分发策略,代替不了访问控制,因为用户同意的是持链人可见,不是公开索引。要修,先停创建,再撤旧链,改子域名命名,最后补访问控制和审计,比如像
Duck.ai 那样设 48 小时过期,把密钥藏在 URL 片段(URL 里 #
后面的部分,浏览器一般不发给服务器)。
第三条线来自生物计算:Anthropic 发布了 蝎毒结合蛋白研究页 、 技术报告 和开放的 Hugging Face 数据集。传统的抗毒血清得从免疫的马的血里抽抗体,按月计产,覆盖面窄,还易过敏。蝎毒里的神经毒素会结合人体细胞表面的钠通道,干扰神经和肌肉的电信号;这项研究不用传统大抗体,设计的是微型结合蛋白,目标是遮挡毒素接触钠通道的位点。研究问题、五个毒素靶点、设计分组和安全规则都是人类事先定好的,Claude 在这个框架内调用蛋白设计和折叠工具,自己挑结合热点、设过滤阈值、组工具。64 小时内,系统生成了 318,484 个设计并筛出 180 个;之后团队与 Claude 又追加 31 个,到第 9 天共 211 个送往两家实验室。
约两个月后,两家实验室用 SPR(把分子固定在芯片上,用光学看它们会不会结合的方法)测了设计会不会粘在毒素上,最终有 17 个设计满足作者的四条复合标准,其中 15 个通过两家实验室测试,2 个 LqhIII 结合体仅由 Adaptyv 测试;0 个证实能中和蝎毒。从送测总数看,整体命中率 8.1%(17/211),但这个整体平均与最难子集之间差距很大:只针对单一毒素的子集命中率 18%,而以同时结合全部五种毒素为目标的高难子集中,只有 1/91 成为结合体,且只结合 AaH I。粘在毒素上也不等于能解毒。结合是芯片上的分子粘附,中和需要真正阻止毒素干扰活细胞。这轮实验没做细胞、动物、稳定性、免疫原性或量产测试,Anthropic 也明确声明没有做出抗毒血清。
即使仅看这 17 个结合结果,判断命中的四条结合标准也是在实验数据出来后才定的,不是事先注册,技术报告未过同行评审,截至 2026 年 10 月 21 日未发现公开的独立复现。项目由 Anthropic 和投资研究机构 Citrini 共同设计和资助,后者文章还推荐了相关股票。整项研究最扎实的部分是把数据公开在 Hugging Face 上让外界复核。把前后两段耗时和成本放在一起看,生成 318,484 个候选设计并筛出 180 个只花 64 小时,湿实验却得花约两个月才能筛出 17 个结合起点;按 Citrini 自述,设计筛选算力约 5 万美元,湿实验约 15 万美元,这提示,在本项目中,湿实验验证比最初的设计筛选更耗时、费用也更高。
如果把这三件事合在一起看:一个 PHP 缺陷搁置两年,约两周内从开始审计做到可用 PoC,压力转向补丁和披露协调;Muse 的分享页因为标题进到了子域名,在第三方 DNS 历史里留下了可能持续保存的记录;Anthropic 用 64 小时生成 31.8 万个设计,两个月湿实验筛出 17 个结合体、0 个抗毒血清——不论前端是模型压缩了生成漏洞利用与候选蛋白的成本,还是 AI 产品把对话做成一键分享网页,决定后果的都不是生成这一步,而是承接产出的下游系统。
三条线撞上的是三种不同的边界:PHP 的边界是补丁与披露的物流,Muse 的边界是标识符与访问控制,蛋白的边界是湿实验与成药性。模型把生成端压短了,但没有改变这三端的形状,验证、分发与控制依然决定着结果停在哪里。