Saltar al contenido principal

How We're Protecting Our Newsroom from npm Supply Chain Attacks

· 12 minutos de lectura
Ryan Sobol

We got lucky with Shai-Hulud 2.0.

In November 2025, a self-replicating npm worm compromised 796 packages with 132 million monthly downloads. The attack used preinstall scripts to steal credentials, install persistent backdoors, and in some cases wipe entire developer environments. We weren't affected—not because we had robust defenses, but because we didn't run npm install or npm update during the attack window.

Luck isn't a security strategy.

pnpm 10.24

· Un minuto de lectura
Zoltan Kochan
Lead maintainer of pnpm

pnpm now scales network concurrency automatically on high-core machines and ships several reliability fixes.

pnpm 10.23

· 2 minutos de lectura
Zoltan Kochan
Lead maintainer of pnpm

Added --lockfile-only option to pnpm list and various improvements to pnpm self-update.

pnpm 10.22

· Un minuto de lectura
Zoltan Kochan
Lead maintainer of pnpm

Added support for excluding packages from trust policy and overriding the engines field on publish.

pnpm 10.21

· 2 minutos de lectura
Zoltan Kochan
Lead maintainer of pnpm

Added support for Node.js runtime installation for dependencies and a setting for configuring trust policy.

pnpm 10.20

· Un minuto de lectura
Zoltan Kochan
Lead maintainer of pnpm

This release adds a --all flag for the pnpm help command to print all commands.

pnpm 10.19

· Un minuto de lectura
Zoltan Kochan
Lead maintainer of pnpm

This release adds version-scoped controls to two settings: [onlyBuiltDependencies] and [minimumReleaseAgeExclude].

pnpm 10.18

· Un minuto de lectura
Zoltan Kochan
Lead maintainer of pnpm

Minor Changes

Added network performance monitoring to pnpm by implementing warnings for slow network requests, including both metadata fetches and tarball downloads.

Added configuration options for warning thresholds: fetchWarnTimeoutMs and fetchMinSpeedKiBps. Warning messages are displayed when requests exceed time thresholds or fall below speed minimums

Related PR: #10025.

Patch Changes

  • Retry filesystem operations on EAGAIN errors #9959.
  • Outdated command respects minimumReleaseAge configuration #10030.
  • Correctly apply the cleanupUnusedCatalogs configuration when removing dependent packages.
  • Don't fail with a meaningless error when scriptShell is set to false #8748.
  • pnpm dlx should not fail when minimumReleaseAge is set #10037.

pnpm 10.17

· Un minuto de lectura
Zoltan Kochan
Lead maintainer of pnpm

Minor Changes

The minimumReleaseAgeExclude setting now supports patterns.

pnpm 10.16

· 3 minutos de lectura
Zoltan Kochan
Lead maintainer of pnpm

Minor Changes

New setting for delayed dependency updates

There have been several incidents recently where popular packages were successfully attacked. To reduce the risk of installing a compromised version, we are introducing a new setting that delays the installation of newly released dependencies. In most cases, such attacks are discovered quickly and the malicious versions are removed from the registry within an hour.