ChatGPT Telemetry 在无效输入时崩溃(真的)

发布: (2026年1月31日 GMT+8 17:41)
3 分钟阅读
原文: Dev.to

Source: Dev.to

概览

大家都说遥测“无关紧要”——直到它开始返回 500 Internal Server Error
我把 Rentgen 指向了 ChatGPT 的一个内部遥测端点(即在消息下方点击 Copy 时触发的那个)。我直接从浏览器复制了 cURL 请求并交给 Rentgen,然后让 Rentgen 对输入进行变异。

发现

  • 在 otherwise valid JSON 字符串中使用 无效的 UUID 会始终触发 500 错误。
  • 西里尔字符 → 500
  • 带重音的字母 → 500
  • 随机符号 → 500

更有意思的是:

  • 提交数字或布尔值会返回 422,这表明存在类型层面的验证。
  • 当值是字符串时,服务器会继续进入运行时并崩溃。

这意味着什么

  • 该端点 把格式错误的输入视为客户端错误。
  • 由错误的客户端输入导致的 500 响应是验证缺陷,而不是可接受的失败模式。

影响

遥测端点会被自动、频繁且由不受控制的客户端调用。如果格式错误的输入会导致崩溃,它们就会成为一种 稳定性和 DoS 风险,只等着被硬核发现。

  • 对于客户端错误,返回 400422 才是合适的。
  • 500 响应绝不应由错误的客户端输入引起。

问题是如何被发现的

整个发现过程只用了:

  1. 一个复制的 cURL 请求。
  2. 大约一分钟的基本负面测试,使用 Rentgen 完成。

没有使用模糊测试框架,也没有 AI 魔法——只是很多团队会因为“没有出错”而跳过的直接测试。

结论

这正是像 Rentgen 这样的工具存在的明确理由:它们能够暴露验证缺陷,这类缺陷可能导致看似无害的遥测端点崩溃。

完整的细节、截图和分析请见此处:
👉

Back to Blog

相关文章

阅读更多 »