TRUFFLEHOG

COMPANY

RESOURCES

Luke Marshall and Dylan Ayrey

Introducing the Secrets Revocation Program: revoking 1.4 million live API keys

Introducing the Secrets Revocation Program: revoking 1.4 million live API keys

Luke Marshall and Dylan Ayrey

tl;dr Today we’re launching the Secrets Revocation Program to start revoking the 1.4 million API keys we’ve confirmed are live and leaked on GitHub, Docker Hub, npm, Hugging Face and more. Telling developers their keys leaked doesn’t get them turned off: 81% of the keys we reported last year still worked six months later. We’re inviting every company that issues API keys to join the program and revoke the keys, for free.

TruffleSec's research in internet-scale secret detection is widely recognized across the industry. We are thrilled to partner with them to further protect our customers.

Mukund SarmaVP of Security at Vercel
Partnering
with
Hugging FaceNotionVercelResendRubyGemsPyPIGitLabTwilioDatadogNVIDIADigitalOceanStripeKKlaviyoSalesforceLLambdaSServal + Your logo here

How the program works

In October alone, our research team scanned 6 petabytes of public code, packages, container images, AI datasets and apps. That’s more than 20 petabytes this year. TruffleHog tests every key it finds, so a key only reaches its issuer if it works right now. Then the company that issued it kills it.

We look everywhere

GitHub GitLab Docker Hub npm PyPI Hugging Face Android apps Firefox add-ons
6 PB of public data scanned in October
→

TruffleHog verifies

✅ Found verified result 🐷🔑
Detector Type: HuggingFace
Raw result: hf_••••••••••Qx2

✅ Found verified result 🐷🔑
Detector Type: Vercel
Raw result: ••••••••••7Lm

✅ Found verified result 🐷🔑
Detector Type: Resend
Raw result: re_••••••••••a9F
→

The issuer kills it

✕ Revoked by issuer
Detector Type: HuggingFace
Raw result: hf_••••••••••Qx2

✕ Revoked by issuer
Detector Type: Vercel
Raw result: ••••••••••7Lm

✕ Revoked by issuer
Detector Type: Resend
Raw result: re_••••••••••a9F

Three out of every four Resend keys we delivered came from Docker images. More than half of the Vercel keys in our analysis came from Hugging Face datasets. Both sources sit outside GitHub’s secret-scanning partner program, which covers public GitHub repositories and npm.

For issuers already partnered with GitHub, this program adds another route to exposed customer keys.

For companies that issue keys

Issue API keys? Join here.

It's free and takes a two-page agreement. The keys we find for you are already sitting in public, and they work. Let's turn them off.

Option 1We revoke for youPoint us at a revocation endpoint. Keys die as soon as we verify them, and you tell your customers.
or
Option 2Your team revokesWe send you verified keys by webhook, with where we found them. You revoke within 14 days, or tell us why you can't.

Not sure it's worth it? Ask us how many of your customers' keys we found this month.

AI is making the problem so much worse

AI agents now write a big share of the code on GitHub. GitHub says more than 40% of pull requests in September started as an agent’s first draft, up from 17% in March. They leak keys the same way people do. Until mid-2025, not one commit that leaked a working key was signed by an AI agent. By May 2026, 6.8% were.

0
0.4%
3.5%
6.8%
Jan '25JunJan '26
Share of commits that leaked a working key and were signed by an AI coding agent, by month.

They also leave keys in new places. We found a working GitLab token in .claude/settings.local.json inside a published Docker image. Since January 2025 we’ve found 2,655 working keys in AI coding tools’ config files like that one. In 2024 we found none.

Attackers are using AI too. During OpenAI’s July cyber evaluation, agents found 14 working Hugging Face tokens with write access in a public dataset. Less than a day later, Hugging Face’s production credentials were on their message board.

Jul 10 · 09:41
Finds 14 working tokens
Jul 11 · 04:35
Uploads a rigged file
04:38
Hugging Face's server leaks its secrets
05:04 · +19h 23m
Production credentials in hand

Stolen keys feed AI in another way: model distillation. An attacker uses someone else’s API key to pay for millions of answers from a frontier model, then trains a model of their own on them. Anthropic has reported distillation proxies running on stolen credentials, and OpenCode said an October breach of its hosted Console was related to a large-scale distillation attack. Google’s threat intelligence team watched another attacker plan, build and run a mass credential-harvesting campaign in under six hours.

AI is creating more leaked keys, and attackers can now find and use them at machine speed. We aren’t ready for that until most of the keys already sitting in public are dead.

Google switched from notifying to automatically revoking. The difference we measured was significant

The usual response to a leaked key is a notification: someone emails the developer, or tells the company that issued the key, which emails the developer.

We’ve measured how that goes. Last year we reported 21,981 live keys we found on GitLab and Bitbucket. Six months later, 81% still worked.

Google has tried both approaches on the same kind of key. When a Google Cloud service-account key leaked to GitHub, Google used to tell the customer. On June 16, 2024, it started disabling leaked keys by default. We sorted every leaked Google Cloud key in The Stack v3, a public snapshot of GitHub, by when it was committed, and checked which ones still worked in July 2026.

72%
of Google Cloud keys leaked while Google only notified customers still work
11%
of keys leaked after Google started disabling them still work
67% of 4,878
64% of 6,458
72% of 5,524
75% of 7,076
71% of 5,963
66% of 5,868
21% of 4,261
7% of 4,715
7% of 4,867
8% of 7,651
June 16, 2024: Google starts disabling leaked keys
Q1 '23Q2 '23Q3 '23Q4 '23Q1 '24Q2 '24Q3 '24Q4 '24Q1 '25Q2 '25
Google Cloud service-account keys committed to public GitHub repos in The Stack v3, by quarter, and the share that still worked in July 2026.

It isn’t zero because customers can opt out and Google only disables the leaks it detects. But the drop starts right when the policy changed, and of the 69,041 Google Cloud keys in The Stack that still work, 96% leaked before the switch.

It’s the same everywhere we looked. Hugging Face, GitHub, Anthropic, OpenAI and Slack kill keys reported to them, and at most 2.2% of theirs in The Stack still work. Telegram has no way for anyone else to report a leaked bot token, and 53% of those still work.

Leaked keys don’t die on their own

In July, we tested every key in The Stack v3, a public snapshot of GitHub that closed in August 2025. 543,699 still worked.

Half had been public for more than two years. A leaked key keeps working until the company that issued it turns it off, and for these, nobody did.

Nov 2009. The oldest working AWS key we found was committed to GitHub 16 years before we tested it.
2009: 4 live
2010: 25 live
2011: 105 live
2012: 235 live
2013: 589 live
2014: 1,678 live
2015: 4,308 live
2016: 9,043 live
2017: 14,234 live
2018: 18,230 live
2019: 21,286 live
2020: 39,547 live
2021: 54,703 live
2022: 68,943 live
2023: 95,062 live
2024: 108,006 live
2025: 107,701 live
20091011121314151617181920212223242025
Credentials from The Stack v3 (public GitHub, crawled through August 2025) that still authenticated when we tested them in July 2026, by the year they were committed.

The Stack is one snapshot of one site. We also scan Docker Hub, npm, PyPI, GitLab, Hugging Face datasets, Android apps and Firefox add-ons, plus everything new pushed to GitHub.

1M+
leaked keys passed our tests in the past year alone. 1.4 million since 2022.

The pile keeps growing. In October we found a new working key every two and a half minutes.

23 companies issued 80% of the keys

Leaked keys aren’t spread evenly. We traced the working keys from the past year back to the companies that issued them. 459 companies show up. Six issued half of the keys we could trace. Twenty-three issued 80%.

Twilio, one of the 23, is joining. Our pipeline is also holding 43,699 verified keys for issuers that haven’t signed up yet. Here are our partners next to the rest of the 23.

PartnerNot yet joinedWorking leaked keys we found in the past 12 months, by issuer. Google's count is 78,444 Cloud service-account keys plus 81,179 API keys that authenticate to Gemini.
Issue API keys? Revoke the ones we've found, free. Join the program →
infra