Skip to content

ProductNot yet confirmed elsewhere1 publisher2 min readPublished

Bloom Security finds 1,500 npm packages vulnerable to a publishing attack that needs no stolen credentials

Bloom Security found more than 1,500 npm packages, with over 10 million downloads, vulnerable to a publishing attack that needs no stolen credentials. Bloom also put AI-agent installs at about 70 packages a month on a typical endpoint, but its demonstration used only repositories its researchers controlled.

The Product Desk

How we use AISend a correction

Photograph accompanying Bloom Security finds 1,500 npm packages vulnerable to a publishing attack that needs no stolen credentials
Photo: thenextweb.com
Agent installs can run higher on developer machines Bloom Security's figures, as reported by The Next Web, for AI-agent package installs a month and agents running per machine.

Key figures: a typical endpoint receives about 70 packages installed by AI agents a month, and developer machines can approach 350. The average endpoint runs 3 agents; developer machines can run 5 or more.

Agent installs can run higher on developer machines
FigureValueNoteClaim
Agent installs a month, typical endpoint, about70 packages3
Developer machines, can approach350 packagesagent-installed packages a month4
Average endpoint3 agents running7
Developer machines5 agents or more7

What happened

  • npm Trusted Publishing swaps long-lived tokens for short-lived credentials, but Bloom found npm first tied trust to a repository's slug and did not immediately record its permanent identifier.
  • If an owner renames, transfers or deletes a repository, the old address can be claimed by someone else, and a binding that has never published may still accept the new holder.
  • A malicious release carrying a postinstall hook can run its code during installation on developer machines or continuous integration systems.
  • Bloom reported catching and blocking a customer's AI agent as it tried to install one of the affected packages.

Why it matters

  • exposure A malicious release under a legitimate name keeps its download counts and dependency links, so an agent resolving the latest version without a person checking its origin sees an ordinary update.
  • constraint Controls that watch for stolen maintainer credentials or account takeovers would see nothing here, because Bloom says the route involves neither.
  • decision Whoever owns developer tooling now has to decide which environments let agents install new package versions on their own.

Take a developer who asks an assistant to add a library and goes back to the ticket. The agent picks a package, installs it and moves on. Bloom says users hand installs to agents that each put in between 0.3 and 1.2 packages a day, depending on type [5]. The average endpoint runs three such agents [7], and those counts leave out the dependencies the installed packages bring in [8].

The endpoint figure holds up on Bloom's own inputs. Three agents at 0.3 to 1.2 packages a day come to 27 to 108 installs over a 30-day month, and the reported 70 sits inside that range [20][3]. The 350 for developer machines is harder to rebuild [4]. Two to three direct installs a day is 60 to 90 a month [21], and five agents at the 1.2 ceiling reach 180 [22]. The source does not show how 350 is built, so we would plan on 70 and treat 350 as an outer case.

Bloom demonstrated the publish on repositories and a package scope it controlled [15]. The account does not say how many of the 1,500 packages have a claimable slug today, or whether any malicious release has appeared.

Readers need to decide which environments let agents install without a second look. Bloom says no person necessarily reviews a package's origin or release history before an agent installs the latest version [17], and packages may run install scripts, including postinstall hooks, without a developer reviewing each dependency [9]. Sort each environment where agents install packages on two points: whether a person or a policy checks a new version before the install, and whether install scripts can run there.

An environment with at least one of those controls has something in the path. One with neither is the one to fix first. We would pick the control by its cost. Blocking install scripts turns every package with a legitimate script into an exception that someone has to approve. A hold or approval step on new versions slows the agent. Attestation is a poor candidate for the control, since Bloom flags a potential blind spot in provenance verification [19].

What to watch

  • Whether npm now records the permanent repository identifier when a Trusted Publisher binding is created; Bloom says it initially did not.
  • Whether any of the 1,500 affected packages ships a malicious release, which would move this from a demonstration to an incident.
  • Whether Bloom publishes how it arrives at 350 monthly installs for developer machines, since the daily rates it reports give 60 to 90.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence50
Adoption20
Hype gap+25
Incentives65
Confidence45
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    The SlugFest research identified more than 1,500 npm packages vulnerable to a publishing attack involving GitHub repository addresses.

    ReportedSupportedSource: Bloom Security, as reported by The Next WebView cited source
  2. [2]

    Together, the vulnerable packages had accumulated more than 10 million downloads.

    ReportedSupportedSource: Bloom Security, as reported by The Next WebView cited source
  3. [3]

    Bloom found that a typical endpoint receives approximately 70 packages installed by AI agents each month.

    ReportedSupportedSource: Bloom Security, as reported by The Next WebView cited source

Sources

1 independent publisher whose own reporting we read for this story.

  1. thenextweb.com

    1 article · October 13, 2026

    How AI coding tools could amplify software supply-chain attacks

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Entities

Loading related stories