A signed provenance statement can be authentic without referring to the right publisher. SlugFest examined a trusted-publishing binding that recognized a GitHub organization, repository name and workflow. If the original repository slug was abandoned and a different user could claim it, a new workflow might present an authentic GitHub OIDC assertion with…
Inspect the ClaimsCase · DiggingBeagle record
npm trusted publishing could accept a reclaimed repository slug as package authority
npm trusted publishing could accept an attacker-reclaimed GitHub repository name as valid workflow provenance for an older package binding.
Unvalidated npm trusted publishing configurations tied to mutable GitHub repository slugs, as disclosed by Bloom Security in October 2026. Potentially susceptible packages are not proven hijacked. New configurations have a reported 48-hour validation expiry.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Impact
- Band 3 of 4
- Evidence
- Grade B
- Remediation
- mitigation available
- AI role
- WITH AI
Basis and provenance
Bloom's SlugFest write-up documents reuse of a prior GitHub owner/repo name with resulting trusted-publisher authority. GitHub introduced a 48-hour expiry for unvalidated configurations, a meaningful mitigation but not a universal proof that all identity-reuse configurations are safe. No actual package theft or customer count should be inferred from download statistics.
Impact basis: A controlled OIDC trusted-publisher takeover through a reclaimed mutable repository slug could authorize a package publication under a new operator. The studied vulnerable packages are potentially exposed, not all hijacked; no widespread malicious payload installation is established.
Assessed Oct 19, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-NPM-SLUGFEST-REPO-RECLAIM · Bloom Security: SlugFest reclaimed repository trusted publisher
At a glance
Coding agents are a distribution amplifier here because they fetch and execute packages automatically. They are not the root vulnerability, which is an identity binding in npm trusted publishing.
Read the implicationsBloom estimated more than 1,500 potentially affected packages and more than ten million historical downloads. Those are exposure counts, not 1,500 observed malicious releases. GitHub announced expiry of unvalidated configurations after 48 hours, which is not equivalent to proving immutable repository-ID validation in every case.
Limits and uncertaintyFull account
A signed provenance statement can be authentic without referring to the right publisher. SlugFest examined a trusted-publishing binding that recognized a GitHub organization, repository name and workflow. If the original repository slug was abandoned and a different user could claim it, a new workflow might present an authentic GitHub OIDC assertion with the same textual identity. The registry could accept that assertion as authority to publish the original npm package, without a stolen password or a compromised GitHub key.
Bloom Security reported more than 1,500 potentially exposed packages and large aggregate historical download figures. These numbers describe candidates and usage, not confirmed package takeovers or poisoned installations. They also do not show that every affected configuration remained exploitable after registry changes. The difference between an immutable GitHub repository identifier and a reusable display slug is central to the trust failure.
GitHub announced expiration of configurations left unvalidated for 48 hours, reducing one exposure period. Verification must still ask what identity a validated binding retains after repository renames, transfers and deletions. Cryptographically valid attestations only prove that the named issuer signed the event; they do not establish continuity of ownership when the issuer identifier itself can be reclaimed.
Claims & evidence
CLM-NPM-SLUGFEST-REPO-RECLAIMBloom Security reported that an unvalidated npm trusted-publishing configuration could recognize a newly claimed GitHub repository slug as the issuer of a package that had trusted a prior repository identity.supported
Basis: reported finding
- supportsBloom Security: SlugFest reclaimed repository trusted publisherprimary disclosure
Technical mechanism and SlugFest by the numbers
Implications
Coding agents are a distribution amplifier here because they fetch and execute packages automatically. They are not the root vulnerability, which is an identity binding in npm trusted publishing.
Controls and mitigations
- Bind publisher identity to immutable repository and owner identifiers and revalidate it at token exchange, independent of mutable GitHub names.
Unknowns and contradictions
- Bloom estimated more than 1,500 potentially affected packages and more than ten million historical downloads. Those are exposure counts, not 1,500 observed malicious releases. GitHub announced expiry of unvalidated configurations after 48 hours, which is not equivalent to proving immutable repository-ID validation in every case.
Sources and citation
Material revision history
- Oct 19, 2026 · Published version · first publication · revision 174
- Oct 19, 2026 · Canonical change recorded · material revision · revision 175Public fields changed: assessment_profile