My own scrubber was bypassed by the very next line — leak survived 13 releases
Thirumalaiboobathi · reddit · 2026-08-31
A first-party security retro of opentel-mcp v0.13.0
- Root cause: computeFingerprint(err) strips emails/IPs/URLs/paths, but the very next lines — span.recordException(err) and span.setStatus — put the unscrubbed original on the span. Standard OTel's recordException records exception.message and stacktrace verbatim, no filtering.
- The stacktrace is quieter still: absolute filesystem paths leak usernames and directory structure, skipping even the cwd-stripping the fingerprint path had. The bug survived 13 releases with tests green.
- Second issue: mcp.tool.model was read from the tool's own response (including JSON parsed from content[0].text) with only a typeof check — tool-controlled text on a span used as a metric label, with unbounded cardinality.
Fixes
- New errorRecording.mode (full | normalized | none), defaulting to full — recordException has defined OTel semantics, silently changing it would break debugging invisibly.
- Model IDs are now allowlisted and length-capped; rejection sets pricingstatus = "unknown" and warns on shape only, never the value.
Check your own code: does recordException sit outside your attribute governance? If you scrub before hashing, does the raw original get emitted elsewhere in the same function?
Related event: Dev Reveals Sanitizer Bypass Bug Leaking Sensitive Data for 13 Releases(2 posts)→
More from coding & agent
- Open-source tool bridges ChatGPT Web to bypass Codex usage limits — algo_diver · 2026-08-31
- Use ChatGPT Work to Auto-Generate a Reference Site for 232 Tools — intellectronica · 2026-08-31
- Open-Source GitHub AI Code Reviewer: Self-Hosted Models, No SaaS Fees — Arindam_1729 · 2026-08-31
- Library recreates Claude Code, Codex, and Grok interfaces as shadcn components — RichardsonDx · 2026-08-31
- The Post AI Data Stack: Infrastructure Challenges — sh_reya · 2026-08-31
- OpenClaw 2.0 Released: Rebuilds Installation and Browser Experience — heyneighbor · 2026-08-31