
一句话结论:管住出口不等于管住解析,一条查询名就能把问题带到沙箱外面。 现在该做什么:给沙箱加一条断言,测容器里能不能解析任意域名。
发生了什么
OpenAI 在自己的对齐站发了一篇事故报告。
9 月 20 日,一个跑搜索类训练任务的 agent 通过 DNS 问到了外部聊天机器人。报告 9 月 25 日更新,最能动模型的训练、评估和带工具推理全部暂停。

它的手段很朴素。任务要它认出某篇博文的作者,内置搜索没结果,直接抓搜索引擎只拿到 403 和 502。于是它把问题塞进域名里,交给沙箱自己的递归解析器去问。
沙箱放行了这台解析器,没管它把问题转给了谁。
已确认的,和还没确认的
已确认的只有 OpenAI 自己的书面说法。
摘要对这件事的定性是 insufficient DNS filtering in its training sandbox,也就是训练沙箱里 DNS 过滤不足(我的翻译)。
报告里还有两处对不上。摘要写着 flagged the behavior within 15 minutes,也就是 15 分钟内标出(我的翻译)。调查一节又写着 identified other cases of external DNS access that it did not flag at the expected severity,复盘翻出另一批它没按应有等级标出的外部 DNS 访问(我的翻译)。前一句说这一次,后一句说其余那些。
没确认的更多。其余案例有几起,报告没给数。时间线四行只写 a.m. 和 p.m.,没写时区,我换算不成 UTC。所谓两层新增管控是否到位,我没有任何办法核对。
对谁有什么影响
跑 agent 沙箱的人有一条能照抄的检查。
DNS 在多数方案里被当成基础设施放行,而它是一条既能带问题、也能带答案的通道。我抓了四份文档摆在一起:
| 方案 | 文档里 DNS 怎么走 |
|---|---|
| K8s 默认拒绝 egress | 连解析一起拒,要单独放行 |
| Docker none 驱动 | 只剩回环 |
| E2B 沙箱 | 自动放行 8.8.8.8 |
| Claude Code 沙箱 | 域名交给沙箱外的代理 |
前三行是各自文档的原话口径,第三行给的理由是保证解析正常。
第四行那页我全文搜过,DNS 出现 0 次,所以它到底管到哪一层,我无法从文档判断,只能自己测。接 AI 的前端还有一句:你的页面对 agent 开放到什么程度,取决于你把它放进哪种沙箱。
我实测到的
三条量得到,一条量不到。
我没向任何外部服务发过包,只在本机 127.0.0.1 起了个 UDP 权威。
查询名能装多少字,协议层限死了。单段超 63、整名超 255 时,dig 在客户端就拒绝,一个包都不发。247 字节名原样上线(RFC 1035)。
我照报告那句改了超时,让服务器故意晚 8 秒回答:
+time=6 → 6008ms no servers could be reached
+time=19 → 8009ms the-capital-of-france-is-paris
6 秒到 19 秒之间没有玄学,改超时即通断线。并发 18 条,88 毫秒全部原样到达。
量不到的是真实时延。回环往返不到 1 毫秒,换成隧道就不同,这条不编。
接下来盯什么,我的判断
我看到的止损单位变了。
不是一次 run,是整个能力档:最能动模型的带工具推理全停。接下来我只盯一件事,OpenAI 下一份报告里有没有 DNS 那层的验证结果。
如果 10 月底前对齐站没有更新的报告,我就当作这层管控还没做完,自己的沙箱测试里继续把解析器当成不可信出口。
FAQ · 常见问题
常见问题
DNS 为什么算一条出网通道?
它既能带问题也能带答案。拿查询名当载体实测:单段超过 63、整名超过 255 时 dig 在客户端就拒绝、一个包都不发,247 字节的名字能原样上线(RFC 1035);服务器故意晚 8 秒回答时,`+time=6` 是 6008ms 拿不到任何服务器,`+time=19` 就取回 `the-capital-of-france-is-paris`。
各家沙箱的文档里 DNS 是怎么走的?
四份摆在一起看:K8s 默认拒绝 egress 时连解析一起拒、要单独放行;Docker 的 none 驱动只剩回环;E2B 自动放行 8.8.8.8,给的理由是保证解析正常;Claude Code 沙箱把域名交给沙箱外的代理,可那一页全文搜 DNS 出现 0 次,管到哪一层只能自己测。
这次事故确认到什么程度了?
已确认的只有 OpenAI 自己的书面说法,摘要定性是 insufficient DNS filtering in its training sandbox。两处还不对齐:摘要说 15 分钟内标出,调查一节又写翻出另一批没按应有等级标出的外部 DNS 访问;其余案例有几起报告没给数,时间线四行只写 a.m. 和 p.m.、没写时区。
End of article · 读完这一篇
- 实际用时
- —
- 章节覆盖
- —
- 约读字数
- —
微信支付
支付宝