Science1 distinct publisher3 min readUpdated
Hudson Rock's analysis of the exfiltration archive ties 118,829 CI runner dumps to 2,488 organizations. The dumps carrying no identifying metadata are the harder half.
The Scientist · Science desk

Compiled by The ScientistSomething wrong?How this is made
On August 12, 2026, Hudson Rock published its analysis of the archive stolen during March's compromise of the litellm package on PyPI: a 153GB RAR containing 433,909 files [2]. CloudSEK published parallel victim research a day earlier, on August 11, from its own intelligence sources [4]. That matters because the malware behavior was already documented in March [5]; what was missing was the count. GitGuardian, which reported in March that the blast radius was likely significant, notes that was an inference from malware analysis, and the archive replaces it with numbers [21].
The numbers: Hudson Rock attributed 118,829 CI runner dumps to 2,488 corporate domains [3]. That is an average of roughly 47.8 dumps per organization [18], and runner dumps account for about 27 percent of the files in the archive [19]. The malicious version was live on PyPI for about 40 minutes [1].
What each dump contains is the part worth reading twice. On compromised runners the payload escalated to root and swept SSH keys, AWS, GCP and Azure credentials, Kubernetes service account tokens, .env files and CI/CD secrets [6]. On AI builds it also took LLM API keys and gateway configuration, which per GitGuardian is access to an organization's whole model stack rather than a single credential [7]. Hudson Rock's write-up shows environment dumps captured mid-execution, including AWS_SECRET_ACCESS_KEY, SALESFORCE_CLIENT_SECRET, SLACK_SIGNING_SECRET, Azure environment credentials and AI provider API keys [8]. In one case Hudson Rock reports a single organization with 17 compromised pipeline dumps exposing Bitbucket deployment tokens, Elastic API keys, internal JWTs and NPM tokens [10]. Publishing credentials in the loot is how one supply chain incident seeds the next [11].
The unattributable share is the finding operators should sit with. Hudson Rock puts no number on it but reports that many dumps carry live database passwords, cloud credentials and third-party API keys with no company email, no custom domain and no internal hostname, which makes them impossible to trace to an owner [12]. Attribution in this archive depends on incidental variables such as GITLAB_USER_EMAIL and CI_SERVER_FQDN [9]. Hudson Rock ran an ethical disclosure program and CloudSEK published a public lookup tool, and neither can notify a company it cannot name [13].
Even the named cases can misroute. Hudson Rock describes a pipeline whose committer email ended in @siriusxm.com while the environment dump pointed to gitlab.adswizz.com and a matching registry host; the exposure sat in AdsWizz infrastructure, a SiriusXM subsidiary, so an alert routed on the email alone reaches the wrong security team [14].
Two operational details cut against repository-centric hygiene. The payload ran at Python interpreter startup, on developer laptops as readily as CI runners, and never touched a repository [15]. And GitGuardian's own remediation guidance, which is vendor guidance, asks which credentials lived in those pipelines on March 24 [17], and recommends a non-human identity inventory, endpoint secrets detection, continuous detection with validity checking, and honeytokens in environment variables that alert on first use without the victim needing to be identified first [16].
Watch whether either firm quantifies the unattributable slice, and whether the NPM and Bitbucket tokens in the loot show up as downstream package publishes.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
Hudson Rock does not put a number on it but reports that many dumps carry live database passwords, cloud credentials and third-party API keys with no company email, no custom domain and no internal hostname, so those records cannot be attributed to anyone and will receive no disclosure.
The March compromise of the litellm package lasted about 40 minutes on PyPI.
On August 12, 2026, Hudson Rock published its analysis of the exfiltration archive: a 153GB RAR containing 433,909 files.
Hudson Rock researchers attributed 118,829 CI runner dumps to 2,488 corporate domains across the exposed archive.
CloudSEK published parallel victim research on August 11, covering the same campaign from its own intelligence sources.
Neither the Hudson Rock nor CloudSEK report is about malware behavior, which was documented in March; both are about the stolen data.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Specific counts, but relayed through one interested vendor
The claims are unusually concrete - archive size, file count, attributed dump and domain counts, named secret variables, a named misattribution example - which raises evidentiary quality above typical incident commentary. But every figure reaches the reader through a single publisher summarizing two third-party threat-intelligence reports that are not themselves present in the cluster, and the pivotal negative finding (dumps with no identifying metadata) is explicitly unquantified.
Real-world impact counted across thousands of organizations
This is not a proposal or a benchmark: a shipped package compromise produced a measured footprint of 118,829 CI runner dumps across 2,488 named corporate domains, plus two independent threat-intelligence firms publishing victim research and notification mechanisms within a day of each other. What is not measured is uptake of the recommended defenses or how many named victims acted.
Mildly overstated framing over solid counts
The counted portion of the story is well aligned with the evidence, and the piece is explicit that March's 'likely significant' inference has become measurable. The overstatement is at the edges: the unattributable records are framed as 'the harder half' when the source puts no number on them at all, and the remediation section escalates from reporting into the publisher's own product set.
Vendor blog whose remedy is its own product line
The publisher sells secrets detection, developer endpoint protection and honeytokens, and the article's closing section prescribes exactly those controls while citing its own March coverage of the same incident. The reported facts originate with third-party researchers, but selection and framing serve a clear commercial interest.
Plausible and detailed, but uncorroborated in-cluster
Two named research firms converging on the same campaign within a day, and the internal consistency of the arithmetic, support the account. Against that: one publisher, commercial motive, no primary report text, no victim confirmation, and an unquantified central finding. Enough to act on internally, not enough to treat the numbers as settled.
security
The 2,500-org compromise was a Trivy problem. LiteLLM was the closing act.1 distinct publisher
science
LiteLLM 1.82.7 and 1.82.8 shipped an infostealer: rotate everything those machines touched1 distinct publisher
security
The dependency gate moves upstream: why post-commit SCA misses hallucinated packages1 distinct publisher
build
Flux moves GitOps' source of truth into registries you own, and mirroring becomes the prerequisite1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
1 article · August 19, 2026