Zum Inhalt springen
verdict:

pnpm 10.34.5

digest

note: die Zusammenfassung und die Release Notes sind auf Englisch

note: keine Zusammenfassung für dieses digest-Release

digest-Releases werden ohne Zusammenfassung gelistet. Die originalen Release Notes dieser Version stehen hier unten.

release-notesgithub.com/pnpm/pnpm · 102 Zeilen
  1. ## Patch Changes
  2. * 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.
  3. * 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.
  4. * 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.
  5. * 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`.
  6. <!-- sponsors -->
  7. ## Platinum Sponsors
  8. <table>
  9. <tbody>
  10. <tr>
  11. <td align="center" valign="middle">
  12. <a href="https://bit.cloud/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a>
  13. </td>
  14. </tr>
  15. </tbody>
  16. </table>
  17. ## Gold Sponsors
  18. <table>
  19. <tbody>
  20. <tr>
  21. <td align="center" valign="middle">
  22. <a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  23. <picture>
  24. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/sanity.svg" />
  25. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/sanity_light.svg" />
  26. <img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity" />
  27. </picture>
  28. </a>
  29. </td>
  30. <td align="center" valign="middle">
  31. <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  32. <picture>
  33. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" />
  34. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" />
  35. <img src="https://pnpm.io/img/users/discord.svg" width="220" alt="Discord" />
  36. </picture>
  37. </a>
  38. </td>
  39. <td align="center" valign="middle">
  40. <a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a>
  41. </td>
  42. </tr>
  43. <tr>
  44. <td align="center" valign="middle">
  45. <a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  46. <picture>
  47. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/serpapi_dark.svg" />
  48. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/serpapi_light.svg" />
  49. <img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160" alt="SerpApi" />
  50. </picture>
  51. </a>
  52. </td>
  53. <td align="center" valign="middle">
  54. <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  55. <picture>
  56. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" />
  57. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
  58. <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" alt="CodeRabbit" />
  59. </picture>
  60. </a>
  61. </td>
  62. <td align="center" valign="middle">
  63. <a href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  64. <picture>
  65. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/stackblitz.svg" />
  66. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
  67. <img src="https://pnpm.io/img/users/stackblitz.svg" width="190" alt="Stackblitz" />
  68. </picture>
  69. </a>
  70. </td>
  71. </tr>
  72. <tr>
  73. <td align="center" valign="middle">
  74. <a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  75. <picture>
  76. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/workleap.svg" />
  77. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/workleap_light.svg" />
  78. <img src="https://pnpm.io/img/users/workleap.svg" width="190" alt="Workleap" />
  79. </picture>
  80. </a>
  81. </td>
  82. <td align="center" valign="middle">
  83. <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  84. <picture>
  85. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" />
  86. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" />
  87. <img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" />
  88. </picture>
  89. </a>
  90. </td>
  91. </tr>
  92. </tbody>
  93. </table>
  94. <!-- sponsors end -->

auf github ansehenimported 2026-09-28 über npm