自己写的脱敏器被下一行代码绕过,漏洞存活 13 个版本
Thirumalaiboobathi · reddit · 2026-08-31
opentel-mcp v0.13.0 作者复盘自己库的隐私泄漏
- 问题根源:函数里 computeFingerprint(err) 会脱敏邮箱/IP/URL/路径,但紧接着的 span.recordException(err) 和 span.setStatus 把未脱敏原文原样写进 span。标准 OTel 的 recordException 会逐字记录 exception.message 和堆栈,无过滤。
- 堆栈更隐蔽:包含绝对路径,暴露用户名和目录结构,连 fingerprint 路径已有的 cwd 剥离都没走。这个洞带着全绿的测试活了 13 个版本。
- 第二个问题:mcp.tool.model 直接取自工具自身响应(含从 content[0].text 解析的 JSON),只做 typeof 检查——工具可控文本进 span 还当 metric label,带来无界基数。
修复方案
- 新增 errorRecording.mode(full | normalized | none),默认保持 full——OTel 语义有明确定义,静默改掉会坑调试。
- 模型 ID 改为白名单 + 长度上限,被拒时置 pricingstatus = "unknown" 并只报形状不报值(避免把泄漏从 span 挪进日志)。
自查清单:1) 检查 recordException 是否绕过了你为属性设计的治理(白名单/枚举/哈希);2) 哈希前脱敏的原文是否在同函数其他地方又被原样输出。
所属事件:开发者自曝脱敏库漏洞 敏感数据被原样外发(2 条相关)→
「编程与Agent」频道最新
- 开源工具桥接 ChatGPT Web,突破 Codex 使用上限 — algo_diver · 2026-08-31
- 巧用 ChatGPT Work 自动生成 232 个工具接口文档 — intellectronica · 2026-08-31
- 开源 GitHub 代码审查工具:自建模型免 SaaS 费用 — Arindam_1729 · 2026-08-31
- 复现 Claude Code 与 Grok 界面的 shadcn 组件库 — RichardsonDx · 2026-08-31
- 后 AI 数据栈:Agent 时代的基建挑战 — sh_reya · 2026-08-31
- OpenClaw 2.0 发布:重构安装流程,含 1.6 万次提交 — heyneighbor · 2026-08-31