
Socket: pnpm 11.5 Fixes False Trust-Downgrade Alerts for npm Staged Publishes
pnpm 11.5 fixes a bug where its trustPolicy: no-downgrade check incorrectly flagged npm packages using staged publishing (a 2FA-gated release approval step) as a downgrade from trusted publishing, because pnpm inferred publishing method from the ambiguous _npmUser metadata field. The fix, prompted by a report from Kevin Deng, makes pnpm treat staged-publish approver metadata as the strongest trust signal rather than a fallback to weaker token-based publishing, reducing false-positive supply-chain alerts as npm rolls out staged publishing and trusted publishing in response to credential-theft campaigns like Mini Shai-Hulud.
What it is
A pnpm 11.5 fix for a false positive in its trustPolicy: no-downgrade supply-chain check. When a package used npm's staged publishing (a 2FA approval step before a version becomes installable), the no-downgrade policy could wrongly flag the release as a trust downgrade from trusted publishing to classic token/account publishing. Reported by Kevin Deng, following npm tightening controls after the Mini Shai-Hulud stolen-token campaign.
How it works
The no-downgrade policy warns when a package appears to move from a stronger publishing mechanism to a weaker one. pnpm inferred whether a version used trusted publishing by inspecting the _npmUser field. But with staged publishing, _npmUser may point to the maintainer who approved the staged publish rather than reflecting the underlying flow — so a version published through trusted publishing but approved via staging looked like a fallback to classic user/token publishing. pnpm 11.5 instead reads the metadata approver field as its own trust signal, ranking it above trusted publishing and provenance attestations, so an approved staged release is treated as the strongest evidence rather than a downgrade.
Preconditions / Affected
Matters if you run pnpm with trustPolicy: no-downgrade and install packages that use npm's staged publishing (which can also be combined with trusted publishing — CI pushes to staging, a human approves via 2FA). Under pre-11.5 pnpm these produced noisy false downgrade alerts.
What to do
Upgrade to pnpm 11.5. No configuration change is described — the fix is in how metadata is interpreted. The release also includes other supply-chain-adjacent fixes worth noting if any apply:
- improved
minimumReleaseAgeExcludehandling, so excluded packages aren't pinned to stale versions in npm resolution fast paths - preservation of the
integrityfield for remote HTTPS tarball dependencies when unrelated packages are installed afterward - browser-based 2FA handling for
pnpm dist-tag addandpnpm dist-tag rmagainst npmjs.org
Caveats
The fix only stops misclassification (fewer noisy alerts); it does not add new detection. The underlying problem is that tools must infer publishing security from fields like _npmUser — Deng has asked npm to expose explicit metadata stating how a version was published (trusted vs. staged). Until npm does, package managers remain exposed to both missed warnings and false positives as npm adds more publishing modes.
Organisations named here
- Kevin Deng
Technologies named here
- pnpm
- npm registry
- npm
Techniques named here
- Staged publishing
- Trusted publishing
- Classic publishing
- Stolen npm token abuse
Threat actors named here
- Mini Shai-Hulud campaign
- Mini Shai-Hulud
Related in Supply Chain


