· adswds-team · Security  · 2 min read

npm trusted publishing’s 48-hour rule: what CI must change after slug reuse

Landian News: GitHub requires first successful publish within 48 hours for new npm Trusted Publishing configs, closing a repo-name reuse (SlugFest) window; issue_comment tokens are rejected. Tighten ad/landing release pipelines accordingly.

Landian News: GitHub requires first successful publish within 48 hours for new npm Trusted Publishing configs, closing a repo-name reuse (SlugFest) window; issue_comment tokens are rejected. Tighten ad/landing release pipelines accordingly.

According to Landian News (14 Oct 2026), GitHub changed npm Trusted Publishing: a new trust config that does not complete a first successful publish within 48 hours expires and can no longer publish. The change targets repository-name reuse—after rename/transfer/delete, the old owner/repo slug may reopen; an attacker registering the same name with a matching workflow could obtain publish rights before the config binds to an immutable repo identity. npm also rejects trusted-publishing tokens from GitHub Actions issue_comment events (alongside prior pull_request_target limits).

In one line: OIDC “no long-lived token” does not mean “trust configs can hang unused forever.”


1. What was fixed

ItemDetail (via Landian / public changelog)
RiskBefore first publish, trust mostly checked readable slug + workflow filename, not immutable repo ID
AttackAbandoned slug claimed → matching Actions → malicious version on victim package
FixUnvalidated configs must succeed within 48h; then bind immutable identity; ordinary edits don’t reset clock
Identity changeNew trust + new 48h window
EventsPrefer push / release / workflow_dispatch

Trusted Publishing rose after worms like Shai-Hulud / TeamPCP. This patch shows automation trust anchors must resist recyclable names.


2. CI checklist for ad landings

  • Inventory Trusted Publishing packages (landing UI, shared libs, Worker tooling);
  • After creating a config, complete a real publish inside 48h;
  • Triggers exclude issue_comment / risky PR events;
  • Plan repo renames/transfers with rebuilt trust—not fire drills;
  • Recreate expired configs; “still visible” ≠ “still valid”;
  • Keep lockfile checks, least privilege, dual publish review.

The same day, Landian also covered a Docker Hub account-to-org PAT mishandling bug—same theme: publish-identity lifecycle when org shape changes.


3. Relation to traffic work

A poisoned front-end package can rewrite redirects and steal click IDs. Entry filtering will not save a dirty build from your own CI.
Visitor rules structure traffic; Trusted Publishing discipline keeps the build yours.


4. Takeaways

Landian’s 48-hour rule turns open-ended trust setup into time-boxed activation. Audit Trusted Publishing and Actions triggers this week before a rename/transfer window becomes a slug-reuse incident.

Further reading: TeamPCP undercover & rotation, axios hijack.

Related Posts

View All Posts »

More with this tag