cd /news/ai-safety/your-pii-redactor-is-not-a-secrets-f… · home › topics › ai-safety › article
[ARTICLE · art-156100] src=dev.to ↗ pub= topic=ai-safety verified=true sentiment=↓ negative

Your PII redactor is not a secrets filter — and your LLM prompts are full of secrets

A developer built LeakProbe, a zero-dependency, vendor-neutral open-source tool that fires evasive secret and PII payloads at redaction layers to report what survives. Testing the popular OSS library redact-pii, LeakProbe found it caught 100% of classic PII but leaked 20 of 38 payloads (52.6%), including private keys, Stripe live keys, AWS secret access keys, OpenAI keys, and JWTs, while catching some credentials like Google API keys and Slack tokens. The developer argues the partial coverage is the real hazard, since a PII redactor is not a secrets filter and the failure lies in assuming one layer covers everything entering LLM prompts.

read3 min views3 publishedOct 23, 2026

If you ship an LLM feature, you probably put a redaction layer in front of the model to strip sensitive data. Good. There's already solid, independent work measuring how well these tools catch PII — academic benchmarks like LeakageBench and REDACT, vendor comparisons on datasets like ai4privacy. If PII is your worry, that ground is covered.

Here's what isn't measured: secrets. The API keys, tokens, connection strings and private keys that end up in prompts not because a user typed them, but because someone pasted a stack trace, an env dump, or a "why isn't this config working?" blob. Those are arguably worse to leak than a name — and nobody's independently testing whether your redactor stops them.

So I built a small, zero-dependency, vendor-neutral tool — LeakProbe — that fires evasive secret (and PII) payloads at any redactor and reports what survives. Then I ran it against a real, popular OSS library: redact-pii.

redact-pii is genuinely good at the job it advertises. Against my corpus it redacted 100% of the classic PII — emails, credit cards, IBANs, US SSNs — including spaced and lightly obfuscated variants that a naive regex misses. If you picked it to scrub PII, it earns its place.

Here it gets interesting — the coverage is a patchwork:

Secret Result
Google API key, Slack token, GitHub fine-grained PAT Caught
DB / Mongo connection strings (password in the URL) Caught
Private keys — RSA, EC, OpenSSH, even well-formed PEM Leaked (100%)
Stripe live key, SendGrid key, AWS secret access key Leaked
AWS access key id, OpenAI key, classic GitHub PAT Leaked
JWT / Bearer token inside a JSON blob Leaked
Moroccan phone / national ID (CIN) Leaked

This is sneakier than "PII tools are blind to secrets." redact-pii catches some credentials — Google, Slack, GitHub fine-grained tokens, even passwords inside connection strings. That partial coverage is exactly what lulls you into trusting it. Then your private keys, your Stripe live key, and your AWS secret access key sail straight through, and you cannot eyeball which half you got. (Overall on my corpus: 20 of 38 payloads leaked, 52.6%.)

It's not that the library is broken — it's a PII tool, and a private key isn't PII. The failure is the deployment: assuming one redactor covers everything sensitive going into your prompts.

Two takeaways:

And these aren't hypothetical — the gaps mirror real, documented issues: streamed-output splits (presidio #2312), silently-dropped locale entities (presidio #2256), and secrets hiding in tool-call arguments (litellm #41265). LeakProbe ships a test for each.

LeakProbe is open source, zero dependencies. Write a five-line adapter around whatever you use today and get a per-category leak report.

git clone https://github.com/roshcompanylabs/leakprobe && cd leakprobe
node src/cli.js run --target ./your-adapter.js --threshold 0   # fail CI on any secret that leaks

If you run it and something surprising leaks, I'd genuinely like to hear what.

── more in #ai-safety 4 stories · sorted by recency
── more on @leakprobe 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/your-pii-redactor-is…] indexed:0 read:3min 2026-10-23 · —