Skip to content

Build1 publisher2 min readPublished

64% of secrets leaked in public repos in 2022 still worked when GitGuardian retested in January 2026

GitGuardian retested credentials it had found in public repositories four years earlier and most still authenticated. The figure is really about who is assigned to invalidate a key.

The Engineer · Build desk

Illustration accompanying 64% of secrets leaked in public repos in 2022 still worked when GitGuardian retested in January 2026

What happened

  • Its worked example follows one API key from a laptop to a repository, a pipeline log, an incident ticket and a teammate's local config, with every copy carrying the same privileges.
  • The post argues the stack is built from specialists (application security, EDR, IAM, vaults, cloud security, SIEM) and that none of them is designed to track a credential across all of those environments.
  • GitGuardian states the gap as a matter of ownership, writing that revocation needs cross-tool context nobody owns.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • constraint Pointing scanners at more surfaces raises the finding count without changing whether any given key still authenticates, so coverage growth and risk reduction are separate lines on the same dashboard.
  • decision Buying another scanner is one project; instrumenting confirmed invalidation across the systems that honour credentials is another, and only the second moves a persistence figure like 64%.
  • exposure Every still-valid copy is a working login, so an attacker using one reaches the SOC as a successful authentication.

Deleting a copy does not change a credential's validity. Rewrite the git history and purge the pipeline log, and the copy pasted into an incident ticket and the one in a teammate's local config still authenticate, because every copy carries the same privileges wherever the credential remains valid [3][11]. Invalidating the credential is one action; finding all the copies is many actions in many tools. GitGuardian's post puts the gap in one sentence: "Revocation needs cross-tool context nobody owns." [6]

The 64% describes a particular population: secrets that were found valid in public repositories in 2022 and retested in January 2026 [1]. Those are keys that leaked into public view and sat there for four years. For the figure to transfer to a managed estate, the credentials you have not found would have to behave like credentials whose owners never saw an alert at all. The post does not say how many were retested or how validity was checked [12].

GitGuardian's other figure counts incidents. Its State of Secrets Sprawl 2026 found that 28% of secrets incidents happen exclusively outside code repositories, in collaboration and productivity tools [2]. That leaves 72% touching a repository somewhere in the chain [10]. Repo scanning still sees most of the volume.

Boundary crossing also breaks the count in the queue. Three findings in three consoles might be three compromised credentials or one credential exposed in three places, and a control tied to a single telemetry source cannot establish which [5].

The detection layer stops helping the moment someone uses a copy. According to the post, "The login succeeds because it was built to succeed", and credential compromise "looks like legitimate access" [7]. Specialisation is why each layer works at all: a scanner that also tried to be an endpoint agent would do both jobs worse [13], and application security, EDR, IAM, vaults, cloud security and SIEM each do what they were built for [4]. In the post's own walkthrough the vault protected the copy enrolled in it. That copy was the safe one [14].

Coverage is the easy number to report, and it moves the wrong way as a program improves: point a scanner at the chat tool and open findings go up. In my view the two numbers to publish are the share of findings confirmed invalid and the median time from detection to invalidation. A secrets feature scoped to one surface can produce neither, because on its own it cannot establish everywhere else the credential exists or whether the exposure was fully remediated [8]. Both figures here come from GitGuardian, which published the post and the report they are drawn from [9].

What to watch

  • Whether the full State of Secrets Sprawl 2026 report documents the retest sample size and how validity was tested.
  • Whether secrets tooling starts reporting time to invalidation and confirmed-invalid share alongside finding counts.
  • Whether the 28% out-of-repo share moves in next year's edition as scanners are pointed at chat and ticketing tools.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories