2026 年 6 月,安全研究员 Lam Jun Rong 在一次航班上试图连接机上 Wi-Fi 时,遇到了一个运行近十年的 Squid 代理服务器。这个偶然的相遇,最终引向了一个让整个安全界震惊的发现:一个在 Squid 代码库中沉睡了 29 年的内存泄露漏洞。
但真正的主角不是 Rong,而是 Anthropic 的 Claude Mythos Preview——一个被美国政府以「国家安全风险」为由限制出口的 AI 模型。正是这个模型,在几分钟内完成了人类安全审查 29 年都没能完成的事。
Squidbleed 是什么
Squid 是全球最广泛使用的开源缓存代理服务器,被大型企业、学校、ISP 部署以缓存、过滤和监控网络流量。Squidbleed(CVE-2026-47729)是一个 Heartbleed 风格的堆越界读取漏洞,存在于 Squid 的 FTP 目录列表解析器中,在默认配置下影响 Squid 的所有历史版本。
漏洞的技术根源是一个极其微妙的 C 标准库行为。1997 年 1 月 18 日,Squid 提交了 commit bb97dd37a,目的是兼容旧式 NetWare FTP 服务器——NetWare 在时间戳和文件名之间输出 4 个空格而非通常的 1 个。该提交引入了如下循环来跳过额外空白:
while (strchr(w_space, *copyFrom)) ++copyFrom;
这段代码的逻辑是:只要 copyFrom 指向的字符在空白字符集合 w_space 中,就继续向前推进指针。表面上看起来完全正确——这正是教科书级的 C 指针操作。
但 Claude Mythos Preview 不这么认为。模型的判断直接引用了 C 标准:
"Confirmed. strchr(w_space, '\0') returns non-NULL per C11 §7.24.5.2 (terminating NUL is part of the string). This is a real bug."
问题出在一个极为隐蔽的边界条件上。根据 C11 标准第 7.24.5.2 节,strchr 将字符串的终止空字符(\0)视为被搜索字符串的一部分。当攻击者的 FTP 服务器在时间戳之后不提供任何文件名时,copyFrom 会指向字符串末尾的 \0。但 strchr(w_space, '\0') 并不会返回 NULL——它返回一个指向 \0 本身的指针。于是循环永不终止,copyFrom 持续递增,最终越界离开缓冲区,xstrdup 将堆上的任意数据作为「文件名」复制并返回给攻击者。
结果是一个经 AddressSanitizer 确认、最多可达 4,065 字节的堆越界读取。而 Squid 使用基于 malloc 的按大小 freelist 池管理内存,回收缓冲区时不会清零。这意味着一个释放的 4KB 缓冲区中可能残留其他用户的明文 HTTP 请求——包括 Authorization 头和会话令牌。攻击者只需控制一个可达的 FTP 服务器(端口 21 在 Squid 默认 Safe_ports ACL 中),即可通过发送不带文件名的畸形 FTP 列表行来触发越界读取,窃取其他代理用户的内存数据。
修复只需一行代码:在调用 strchr 之前检查空终止符。
- while (strchr(w_space, *copyFrom))
+ while (*copyFrom && strchr(w_space, *copyFrom))
该漏洞已在 Squid v7.6(2026 年 6 月 8 日发布)中修复。
AI 如何做到人类做不到的事
Squidbleed 的发现过程揭示了 AI 在代码审查中的一个根本性优势:它把 C 标准当作事实,而非直觉。
人类代码审查者依赖经验与模式识别。当一名审查者看到 while (strchr(w_space, *copyFrom)) 时,他们的大脑会自动得出「这是跳过空白字符」的结论,然后继续往下看。这个推理在 99.99% 的情况下是正确的。但 AI 不会「觉得」什么——它会查表。Claude Mythos Preview 在训练过程中内化了完整的 C 标准文档,因此 strchr 处理 \0 的冷僻行为对它而言和其他事实没有区别。「当模型被指向正确的代码时,它几乎立刻就发现了这个漏洞,」Rong 在他的博客中写道。
另一个关键细节是:Claude Mythos 被指示「生成更多 agent 来更全面地调查 FTP 状态机行为」(Spawn more agents to investigate the full FTP state machine behavior better)。这意味着发现过程并非单次查询,而是多 agent 协同分析的结果——模型自主分解了分析任务,其中一个 agent 恰好撞上了 FTP 目录列表解析器的这个边缘情况。
值得注意的是,Squidbleed 实际上被独立发现了三次。Aisle Research 的安全研究员 Pavel Kohout 在 2026 年 3 月 4 日率先报告了该漏洞,Calif.io 的 Rong 在 4 月 17 日借助 Mythos 做出独立发现,随后 Youssef Awad 在 5 月 7 日再次独立报告。但这并不削弱 AI 发现的意义——恰恰相反,它说明即使在有人已经发现(但未公开)的情况下,AI 依然能够自主定位同一个深层缺陷,证明了该方法论的可复现性。
Glasswing:从实验到工业化
Squidbleed 并非孤例。它是 Anthropic 的 Project Glasswing 项目所产生的一系列发现中的最新一枚。
Project Glasswing 于 2026 年 4 月启动,Anthropic 向 AWS、Apple、Broadcom、Cisco、Google、Microsoft、NVIDIA、Palo Alto Networks、Linux Foundation 等合作伙伴提供了 Claude Mythos Preview 的访问权限。项目首月,Mythos 在 超过 1,000 个开源项目 中扫描并识别出 23,019 个问题,其中 6,202 个被标记为高危或严重级别。
真正令人瞩目的是验证率。Anthropic 与六家独立安全研究公司联合评估了其中的 1,752 项高危及严重级别发现,90.6%(1,587 项)被确认为真实漏洞(true positive),其中 62.4%(1,094 项)被确认为高危或严重级别。
在安全领域,自动化漏洞扫描工具的误报率通常在 60%–90% 之间。一个 90.6% 的确认率意味着 AI 生成的漏洞报告几乎不需要大量人工筛选——这在漏洞研究史上是前所未有的精度水平。
Squidbleed 之前,Calif.io 还曾利用 OpenAI 的 Codex Cyber agent 发现了 HTTP/2 Bomb——一种将多个十年前的 DoS 技术组合成新型攻击链的漏洞。Anthropic 也披露了 Mythos 在 wolfSSL(一个被数十亿设备使用的开源密码库)中发现的可伪造证书漏洞。这些案例共同指向一个趋势:AI 辅助漏洞发现正在从「实验性演示」进入「工业化流水线」阶段。
反讽:发现者与被限制者
Squidbleed 故事中最富有戏剧性的注脚是:发现它的同一类 AI 模型,正被美国政府以网络安全为由严格管制。
2026 年 6 月 9 日,Anthropic 发布了 Claude Fable 5——首款面向公众的 Mythos 级模型。仅仅三天后,美国商务部援引「国家安全授权」发出出口管制指令,要求 Anthropic 立即限制 Fable 5 和 Mythos 5 的访问,禁止任何外国公民使用(包括 Anthropic 自己的外籍员工)。
这意味着,正在通过 Project Glasswing 为开源项目发现并修复数千个高危漏洞的同一模型,被官方定义为必须严控的潜在网络攻击工具。
经过两周的谈判——包括 Anthropic 联合创始人 Tom Brown 取代 CEO Dario Amodei 直接与特朗普政府交涉——商务部于 6 月 26 日部分解除了限制,允许 Mythos 5 面向约 100 家经审批的美国公司和联邦机构发布。而 Fable 5 的广泛访问至今未获批准。
安全界的反应出奇一致地尖锐。Cybersecurity Dive 报道称,多位网络安全专家批评该禁令「把最好的模型从防守方手中拿走,制造了市场不确定性」。正如一位评论者所言:能攻击系统的东西,往往也能保护系统——但如果你只盯着前者,你就失去了后者。
Squidbleed 恰恰为这个论点提供了最高质量的证据。一个 29 年来所有人类审查者都看漏了的漏洞,被一个被政府判定为「太危险而不能广泛部署」的模型在几分钟内找到。AI 的「双重用途」困境,在安全领域获得了最具体的表达。
安全经济学的拐点
Squidbleed 的真正意义不在于这一个漏洞——而在于它标志着漏洞发现边际成本的崩塌。
传统的安全研究是一桩昂贵的生意。一个资深漏洞猎人可能需要数周甚至数月来审计一个复杂代码库的单个子系统。Squid 的代码库在过去 29 年里经历了无数次审计、重写和安全审查,但 while(strchr(w_space, *copyFrom)) 这行代码就这样安然度过了克林顿时代、互联网泡沫、移动革命和云计算浪潮。
而现在,一个 AI 模型在几分钟内完成了 29 年人类集体审查没能做到的事。
Project Glasswing 的数据进一步量化了这种变化:1,000 个项目、23,019 个问题、90.6% 准确率——而且 Anthropic 坦言,当前的瓶颈已经不再是「发现」,而是开源维护者「来不及修复」。这标志着安全经济学的一条基本原则正在被重写:攻击者的成本曲线与防御者的成本曲线不再对称——至少在漏洞发现这个环节,防御者第一次拥有了速度优势。
Calif.io 的 Rong 在博客结尾留下了一条值得所有开源维护者思考的建议:「时不时地问 LLM,哪些功能你可以安全地丢弃。没人使用的死代码,仍然是可能被利用的代码。」Squid 的 FTP 支持就是教科书般的例子——Chromium 系浏览器多年前就已停止支持 FTP,大多数运行 Squid 的组织几乎没有任何合法的 FTP 流量。关闭它,整个攻击面就消失了,成本为零。
在这个意义上,Squidbleed 不只是一个安全漏洞的故事。它是一篇关于 AI 能力的证词:代码审查——这个长期被认为需要「理解」的最高级智力活动之一——正在被重新定义。而定义它的,是一个把 C 标准当事实而非直觉来阅读的机器。

