Skip to content

ci: Update pnpm to v10.34.9 - #709

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/pnpm-10.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/pnpm-10.x

Conversation

@renovate

@renovate renovate Bot commented Jul 11, 2025 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
pnpm (source) 10.12.4 → 10.34.9 age confidence

Release Notes

pnpm/pnpm (pnpm)

v10.34.9: pnpm 10.34.9

Compare Source

Patch Changes
  • 0bff20d: The pnpm version that packageManager pins now records that pin in a fresh pnpm-lock.yaml when pnpm 10 switched to it. A later pnpm install --frozen-lockfile then succeeds #​17303.

Platinum Sponsors

Bit

Gold Sponsors

Sanity Discord Vite
SerpApi CodeRabbit Stackblitz
Workleap Nx

v10.34.8: pnpm 10.34.8

Compare Source

Patch Changes
  • 7ced81e: Recompute hoisted dependencies when a frozen install removes packages, so public hoist links are handed over to retained versions #​16861.
  • debbb4c: When pnpm removes or replaces a direct dependency, it now finishes removing the dependency's bins before it deletes the dependency's directory. Packages that declare bins through directories.bin no longer leave broken shims in node_modules/.bin #​16876.
  • 07becba: The standalone pnpm executables now embed Node.js 24.22.1. They embedded Node.js 20, which has reached end of life and still trusts the certificate authority intermediates that Node.js distrusted in October 2026.

Platinum Sponsors

Bit

Gold Sponsors

Sanity Discord Vite
SerpApi CodeRabbit Stackblitz
Workleap Nx

v10.34.7: pnpm 10.34.7

Compare Source

Patch Changes
  • 97f550c: Switching to the pnpm version in packageManager now works through registry mirrors that strip npm's signatures or re-sign packages with their own key. pnpm then reads the signature from https://registry.npmjs.org/ and verifies it against the integrity of the downloaded pnpm #​16778.
  • b11d7bb: The update notification now suggests the standalone install script instead of pnpm self-update when PNPM_HOME is not set, such as when another package manager installed pnpm. pnpm self-update installs into PNPM_HOME, so in that case it cannot replace the pnpm in use.
Platinum Sponsors
Bit
Gold Sponsors
Sanity Discord Vite
SerpApi CodeRabbit Stackblitz
Workleap Nx

v10.34.6

Compare Source

Patch Changes
  • e7888e5: pnpm self-update now resolves and verifies pnpm through registry, authentication, proxy, and TLS settings from trusted non-project configuration. Project configuration and the default project pnpmfile can no longer redirect the pnpm download or disable engine identity verification.

  • 46bc7c9: pnpm no longer tells you to update itself with Corepack or with pnpm add -g:

    • The update notification now suggests pnpm self-update, or the standalone install script when pnpm is running under Corepack. It used to suggest corepack use pnpm@<version>, or pnpm add -g pnpm / pnpm add -g @pnpm/exe when pnpm was not installed by the standalone script — but pnpm add -g refuses to install pnpm and points at pnpm self-update anyway, and @pnpm/exe is not published for pnpm v12 or newer, where the unscoped pnpm package is itself the native executable.
    • pnpm self-update under Corepack now points at the standalone install script too, instead of telling you to update pnpm with Corepack.
  • 46bc7c9: Updated adm-zip to v0.6.0, which fixes a memory-exhaustion vulnerability where a crafted ZIP file could make it allocate 4 GB of memory. adm-zip is used to extract the Node.js, Bun, and Deno archives that pnpm downloads on Windows.

  • Updated the embedded Node.js release keys to the current canonical nodejs/release-keys list.

  • Updated the embedded npm registry signing keys to the set currently advertised by npm.

  • 702ad5f: Update the embedded Node.js release keys with the new key added to nodejs/release-keys (Stewart X Addison, 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD).

Platinum Sponsors

Bit

Gold Sponsors

Sanity Discord Vite
SerpApi CodeRabbit Stackblitz
Workleap Nx

v10.34.5: pnpm 10.34.5

Compare Source

Patch Changes
  • 78e29fe: Prevent a crafted pnpm-lock.yaml from writing package content outside the virtual store. A dependency path key whose name reconstructs to a path-traversal sequence (e.g. ../../../tmp/x@1.0.0) is now rejected by the isolated (virtual-store) linker and the Plug'n'Play resolver map, matching the containment already applied to the hoisted linker. Under the global virtual store, a traversal in the version-derived path segment (e.g. a snapshot version: "../../x") is now rejected at iterateHashedGraphNodes, the single point every global-virtual-store slot path funnels through.
  • 78e29fe: Fixed a path traversal vulnerability where a dependency whose manifest name was a scoped path traversal (e.g. @x/../../../<path>) could be written outside node_modules to an attacker-controlled location during pnpm install, even with --ignore-scripts. The isolated linker now validates the package name before using it as a directory name, matching the existing protection in the hoisted linker.
  • 47ef6f0: Fixed switching to and self-updating to pnpm v12. pnpm v12 (the Rust port) ships as the pnpm and @pnpm/exe npm packages whose bins are placeholders replaced at install time by the host's native binary from a @pnpm/exe.<platform>-<arch>[-musl] optional dependency. Because pnpm installs its own engine with --ignore-scripts, that relinking never ran, leaving a non-executable placeholder. pnpm now relinks the native binary itself for v12 (recognizing the new platform-package naming scheme and the native pnpm package), and verifies the native binary's npm registry signature before running it.
  • 36928be: ${...} environment-variable placeholders in the httpProxy, httpsProxy, noProxy, proxy, and noproxy settings are no longer expanded when these settings come from a project's pnpm-workspace.yaml. They now receive the same protection already applied to registry.
Platinum Sponsors
Bit
Gold Sponsors
Sanity Discord Vite
SerpApi CodeRabbit Stackblitz
Workleap Nx

v10.34.4: pnpm 10.34.4

Compare Source

Patch Changes
  • 352ae48: Security: validate config dependency names and versions before using them to build filesystem paths. A pnpm-workspace.yaml with a traversal-shaped configDependencies name (such as ../../PWNED) or version (such as ../../../PWNED) could previously cause pnpm install to create symlinks or write package files outside node_modules/.pnpm-config and the store. Names must now be valid npm package names and versions must be exact semver versions. See GHSA-qrv3-253h-g69c.

  • 352ae48: Reject path-traversal and reserved dependency aliases (such as ../../../escape, .bin, .pnpm, or node_modules) that come from a lockfile rather than a freshly resolved manifest. A crafted lockfile alias could otherwise be joined directly under a hoisted node_modules directory, letting package files be written outside the intended install root or overwrite pnpm-owned layout.

    The nodeLinker: hoisted graph builder now validates each alias at the directory sink (safeJoinModulesDir), matching the validation pnpm already performs when resolving aliases from manifests. See GHSA-fr4h-3cph-29xv.

  • 352ae48: Prevent pnpm patch-remove from removing files outside the configured patches directory.

  • 217fbe0: Hardened the warning printed when a project .npmrc uses environment variables in registry/auth settings: the suggested pnpm config set command is now only included for keys made up of shell-inert characters. Because the key comes from a repository-controlled .npmrc and a shell expands $(...), backticks, and $VAR even inside double quotes, a crafted key could otherwise have turned the suggested copy-paste command into command execution.

Platinum Sponsors
Bit
Gold Sponsors
Sanity Discord Vite
SerpApi CodeRabbit Stackblitz
Workleap Nx

v10.34.3: pnpm 10.34.3

Compare Source

⚠️ Security fix — environment variables in a project .npmrc (action may be required)

Following GHSA-3qhv-2rgh-x77r, pnpm no longer expands ${ENV_VAR} placeholders that come from a repository-controlled config file, because a malicious repository could otherwise use them to leak your environment secrets (npm tokens, CI job tokens, etc.) to an attacker-controlled registry during install. This applies to:

  • the project/workspace .npmrc — registry, @scope:registry, proxy URLs, URL-scoped keys (//host/…), and credential values (_authToken, _auth, _password, username, tokenHelper, cert, key);
  • registry URLs in pnpm-workspace.yaml.

This release also closes a bypass where a project .npmrc could set userconfig, globalconfig, or prefix to make pnpm load a repo-supplied file as trusted config (via @pnpm/npm-conf@3.0.3).

Environment variables are still expanded in trusted config: your user-level ~/.npmrc, the global config, CLI options, and environment config.

If your authentication broke after upgrading, move the token out of the committed .npmrc:

# Writes to your user/global config, not the repository:
pnpm config set "//registry.npmjs.org/:_authToken" "$NPM_TOKEN"

Or keep the ${NPM_TOKEN} line but put it in your user-level ~/.npmrc instead of the repo. In GitHub Actions, actions/setup-node with registry-url already writes a user-level .npmrc, so NODE_AUTH_TOKEN keeps working. For other CI where editing each pipeline is hard, set NPM_CONFIG_USERCONFIG=.npmrc in the CI environment to declare the project .npmrc trusted.

See https://pnpm.io/npmrc for full migration details.

Patch Changes
  • Improved the warning printed when a project .npmrc uses an environment variable in a registry/proxy URL or in registry credentials. The message now explains why the setting was ignored and how to migrate it to a trusted source — for example by running pnpm config set "<key>" <value> to store it in the global config, or by keeping the ${...} line in the user-level ~/.npmrc — with a link to https://pnpm.io/npmrc.
  • A repository-controlled project or workspace .npmrc can no longer redirect which files pnpm loads as its trusted user and global configuration. Previously such a file could set userconfig, globalconfig, or prefix to point at an attacker-supplied file shipped in the repository, and pnpm would load it as a trusted config source — bypassing the protection that prevents repository config from expanding environment variables into registry request destinations and credentials, and allowing it to set tokenHelper. The user/global config file locations are now resolved only from trusted sources (CLI options, environment config, the npm builtin config, and defaults) before the project and workspace .npmrc files are read. Fixed by upgrading @pnpm/npm-conf to 3.0.3.
Platinum Sponsors
Bit
Gold Sponsors
Sanity Discord Vite
SerpApi CodeRabbit Stackblitz
Workleap Nx

v10.34.2: pnpm 10.34.2

Compare Source

⚠️ Security fix — environment variables in a project .npmrc (action may be required)

Following GHSA-3qhv-2rgh-x77r, pnpm no longer expands ${ENV_VAR} placeholders that come from a repository-controlled config file, because a malicious repository could otherwise use them to leak your environment secrets (npm tokens, CI job tokens, etc.) to an attacker-controlled registry during install. This applies to:

  • the project/workspace .npmrc — registry, @scope:registry, proxy URLs, URL-scoped keys (//host/…), and credential values (_authToken, _auth, _password, username, tokenHelper, cert, key);
  • registry URLs in pnpm-workspace.yaml.

This release also closes a bypass where a project .npmrc could set userconfig, globalconfig, or prefix to make pnpm load a repo-supplied file as trusted config (via @pnpm/npm-conf@3.0.3).

Environment variables are still expanded in trusted config: your user-level ~/.npmrc, the global config, CLI options, and environment config.

If your authentication broke after upgrading, move the token out of the committed .npmrc:

# Writes to your user/global config, not the repository:
pnpm config set "//registry.npmjs.org/:_authToken" "$NPM_TOKEN"

Or keep the ${NPM_TOKEN} line but put it in your user-level ~/.npmrc instead of the repo. In GitHub Actions, actions/setup-node with registry-url already writes a user-level .npmrc, so NODE_AUTH_TOKEN keeps working. For other CI where editing each pipeline is hard, set NPM_CONFIG_USERCONFIG=.npmrc in the CI environment to declare the project .npmrc trusted.

See https://pnpm.io/npmrc for full migration details.

Patch Changes
  • Package-manager bootstrap traffic is now resolved through trusted registries and trusted network config. When pnpm downloads the pnpm version requested by a repository's packageManager field, the registry it fetches from (and the proxy/TLS settings used for that traffic) now come exclusively from trusted config sources — CLI options, env config, user and global .npmrc — defaulting to the public npm registry, instead of the repository's project/workspace settings.
  • pnpm now verifies the npm registry signature of a package-manager binary before spawning it. When the packageManager field (or pnpm self-update) makes pnpm download another pnpm version, the staged install is verified corepack-style: the integrity recorded in the staged lockfile must carry a valid npm registry signature for the exact name@version, validated against npm's public signing keys that ship embedded in the pnpm CLI. Verification fails closed — a tampered download, an unsigned package, or an unreachable registry refuses the version switch rather than running an unverified binary. It runs only when the wanted version is actually downloaded (a tools-directory cache miss), so repeated commands pay no extra network round trip.
  • Environment variable expansion is now trust-aware for registry/auth config and request destinations. Repository-controlled config files (the project and workspace .npmrc and pnpm-workspace.yaml) can no longer expand ${...} placeholders in registry/proxy request destinations, URL-scoped keys, or registry credential values, preventing repository-controlled configuration from exfiltrating environment secrets through request URLs. Trusted user/global/CLI/env config keeps full env expansion, so existing token and registry setup flows continue to work.
  • Reject reserved manifest bin names ("", ".", "..", and scoped forms such as @scope/..) when resolving a package's bins. These names previously passed the bin-name guard and, when joined to the global bin directory during global remove/update/add operations, could resolve to the global bin directory itself or its parent and have it recursively deleted.
  • Require trusted package identity before package-name onlyBuiltDependencies (and allowBuilds) entries can approve lifecycle scripts for git, git-hosted tarball, direct tarball, and local directory artifacts. To approve one of those artifacts explicitly, use its peer-suffix-free lockfile depPath as the key. Lockfile entries are now rejected when a registry-style dependency path (name@semver) is backed by a git, directory, or git-hosted tarball resolution (ERR_PNPM_RESOLUTION_SHAPE_MISMATCH), so the dependency path is a reliable artifact identity by the time scripts can run.
  • pnpm now verifies the detached OpenPGP signature of a Node.js release's SHASUMS256.txt against the Node.js release team's public keys (embedded in the pnpm CLI) before trusting its hashes. The Node.js download mirror is repository-configurable (node-mirror:<channel> in .npmrc), and the integrity check previously trusted a SHASUMS256.txt fetched from that same mirror — a circular check that a malicious mirror could satisfy with a tampered binary and matching hashes. A mirror that proxies the real signed SHASUMS keeps working unchanged. Only the release channel publishes signed SHASUMS files, so pre-release channels (rc, nightly, …) remain unverified.
Platinum Sponsors
Bit
Gold Sponsors
Sanity Discord Vite
SerpApi CodeRabbit Stackblitz
Workleap Nx

v10.34.1: pnpm 10.34.1

Compare Source

Patch Changes
  • Reject pnpm-lock.yaml entries whose remote tarball resolution: block is missing the integrity field. Previously the worker that extracts a downloaded tarball skipped hash verification when no integrity was supplied and minted a fresh one from the unverified bytes, so an attacker who could both alter the lockfile (e.g. via a pull request that strips integrity:) and serve modified content at the referenced tarball URL could install a tampered package without any error — including under --frozen-lockfile. pnpm now fails closed at lockfile-read time with ERR_PNPM_MISSING_TARBALL_INTEGRITY. Git-hosted tarballs (gitHosted: true or a URL on codeload.github.com / bitbucket.org / gitlab.com) and file: tarballs are exempt — the commit SHA in a git-host URL and the user-controlled local path already anchor the bytes.
Platinum Sponsors
Bit
Gold Sponsors
Sanity Discord Vite
SerpApi CodeRabbit Mend Renovate. View the repository job log.

@renovate renovate Bot added the renovate label Jul 11, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 02c6428 to cf0d7f0 Compare July 18, 2025 23:44
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch 2 times, most recently from 1e92ff2 to 69f0105 Compare July 31, 2025 14:07
@renovate renovate Bot changed the title ci: Update pnpm to v10.13.1 ci: Update pnpm to v10.14.0 Jul 31, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 69f0105 to 57545b7 Compare August 1, 2025 19:34
@renovate renovate Bot changed the title ci: Update pnpm to v10.14.0 ci: Update pnpm to v10.15.0 Aug 19, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 57545b7 to c26cffa Compare August 19, 2025 22:12
@renovate renovate Bot changed the title ci: Update pnpm to v10.15.0 ci: Update pnpm to v10.15.1 Sep 2, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from c26cffa to 7f35904 Compare September 2, 2025 23:30
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch 2 times, most recently from 0fcd557 to 23a4dbe Compare September 13, 2025 18:08
@renovate renovate Bot changed the title ci: Update pnpm to v10.15.1 ci: Update pnpm to v10.16.1 Sep 13, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch 2 times, most recently from ec41033 to 57be731 Compare September 17, 2025 17:51
@renovate renovate Bot changed the title ci: Update pnpm to v10.16.1 ci: Update pnpm to v10.17.0 Sep 17, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 57be731 to da5d17a Compare September 22, 2025 17:12
@renovate renovate Bot changed the title ci: Update pnpm to v10.17.0 ci: Update pnpm to v10.17.1 Sep 22, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from da5d17a to 5be9b70 Compare October 2, 2025 17:30
@renovate renovate Bot changed the title ci: Update pnpm to v10.17.1 ci: Update pnpm to v10.18.0 Oct 2, 2025
@renovate renovate Bot changed the title ci: Update pnpm to v10.18.0 ci: Update pnpm to v10.18.1 Oct 6, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch 2 times, most recently from 6787ae7 to ffbba5a Compare October 9, 2025 23:29
@renovate renovate Bot changed the title ci: Update pnpm to v10.18.1 ci: Update pnpm to v10.18.2 Oct 9, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from ffbba5a to 0b0d4b4 Compare October 14, 2025 10:46
@renovate renovate Bot changed the title ci: Update pnpm to v10.18.2 ci: Update pnpm to v10.18.3 Oct 14, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 0b0d4b4 to 6048ebb Compare October 21, 2025 16:12
@renovate renovate Bot changed the title ci: Update pnpm to v10.18.3 ci: Update pnpm to v10.19.0 Oct 21, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 6048ebb to 59f2f52 Compare October 28, 2025 22:54
@renovate renovate Bot changed the title ci: Update pnpm to v10.19.0 ci: Update pnpm to v10.20.0 Oct 28, 2025
@renovate renovate Bot changed the title ci: Update pnpm to v10.25.0 ci: Update pnpm to v10.26.0 Dec 15, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from cdf17ad to 24b908a Compare December 19, 2025 02:32
@renovate renovate Bot changed the title ci: Update pnpm to v10.26.0 ci: Update pnpm to v10.26.1 Dec 19, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 24b908a to 9938dc5 Compare December 23, 2025 18:11
@renovate renovate Bot changed the title ci: Update pnpm to v10.26.1 ci: Update pnpm to v10.26.2 Dec 23, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 9938dc5 to 86ad07a Compare December 31, 2025 02:09
@renovate renovate Bot changed the title ci: Update pnpm to v10.26.2 ci: Update pnpm to v10.27.0 Dec 31, 2025
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 86ad07a to 7a7f2bb Compare January 10, 2026 00:58
@renovate renovate Bot changed the title ci: Update pnpm to v10.27.0 ci: Update pnpm to v10.28.0 Jan 10, 2026
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 7a7f2bb to 3a386fd Compare January 19, 2026 14:33
@renovate renovate Bot changed the title ci: Update pnpm to v10.28.0 ci: Update pnpm to v10.28.1 Jan 19, 2026
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 3a386fd to 1a80ff0 Compare January 26, 2026 17:46
@renovate renovate Bot changed the title ci: Update pnpm to v10.28.1 ci: Update pnpm to v10.28.2 Jan 26, 2026
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 1a80ff0 to f55c1c7 Compare February 7, 2026 20:38
@renovate renovate Bot changed the title ci: Update pnpm to v10.28.2 ci: Update pnpm to v10.29.1 Feb 7, 2026
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from f55c1c7 to 9df7003 Compare February 9, 2026 01:52
@renovate renovate Bot changed the title ci: Update pnpm to v10.29.1 ci: Update pnpm to v10.29.2 Feb 9, 2026
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 9df7003 to aa5b83c Compare February 11, 2026 14:46
@renovate renovate Bot changed the title ci: Update pnpm to v10.29.2 ci: Update pnpm to v10.29.3 Feb 11, 2026
@renovate renovate Bot changed the title ci: Update pnpm to v10.29.3 ci: Update pnpm to v10.30.0 Feb 17, 2026
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch 2 times, most recently from 600358a to 88ca800 Compare February 20, 2026 01:37
@renovate renovate Bot changed the title ci: Update pnpm to v10.30.0 ci: Update pnpm to v10.30.1 Feb 20, 2026
@renovate renovate Bot changed the title ci: Update pnpm to v10.30.1 ci: Update pnpm to v10.30.2 Feb 24, 2026
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch 2 times, most recently from e8801de to 336e5cd Compare February 26, 2026 11:34
@renovate renovate Bot changed the title ci: Update pnpm to v10.30.2 ci: Update pnpm to v10.30.3 Feb 26, 2026
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 336e5cd to 6c28ae9 Compare February 27, 2026 01:58
@renovate
renovate Bot force-pushed the renovate/pnpm-10.x branch from 6c28ae9 to f4a2e3c Compare March 8, 2026 01:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants