postinstall is the main vector for supply chain attacks from node_modules, but most packages don’t need it.
↓ Thread
postinstall is the main vector for supply chain attacks from node_modules, but most packages don’t need it.
↓ Thread
npm plans to block postinstall scripts by default in a future release
In the near future (phased rollout), we will likely get a warning
github.com/npm/cli/pull...
npm plans to block postinstall scripts by default in a future release
In the near future (phased rollout), we will likely get a warning
github.com/npm/cli/pull...
In order to be a good citizen and help move away from postinstall scripts, the latest version of SvelteKit no longer has one. Please add "prepare": "svelte-kit sync" to your package.json instead
github.com/orgs/pnpm/di...
In order to be a good citizen and help move away from postinstall scripts, the latest version of SvelteKit no longer has one. Please add "prepare": "svelte-kit sync" to your package.json instead
All modern package managers will block postinstall scripts by default :
📦 npm v12 🆕
📦 pnpm 10
📦 Yarn 4.14
📦 Bun
📦 Deno
📦 Aube
This doesn't solve everything, but should greatly reduce the ability for supply chain worms to spread
github.blog/changelog/20...
All modern package managers will block postinstall scripts by default :
📦 npm v12 🆕
📦 pnpm 10
📦 Yarn 4.14
📦 Bun
📦 Deno
📦 Aube
This doesn't solve everything, but should greatly reduce the ability for supply chain worms to spread
github.blog/changelog/20...
FYI, the image manipulation library now ships prebuilt versions for most platforms
You can upgrade and remove sharp from your package manager build exclusions (pnpm allowBuilds for ex)
FYI, the image manipulation library now ships prebuilt versions for most platforms
You can upgrade and remove sharp from your package manager build exclusions (pnpm allowBuilds for ex)
The campaign involved malicious commits to affected repositories and reused the same GitHub-hosted payload infrastructure.
socket.dev/blog/malicio...
The campaign involved malicious commits to affected repositories and reused the same GitHub-hosted payload infrastructure.
socket.dev/blog/malicio...
Github poll: github.com/orgs/pnpm/di...
Github poll: github.com/orgs/pnpm/di...
The real story here is that GitHub Actions has insufficient protections, and this attack should not have been possible.
Private CI runners and trusted publishing protect against this attack.
We have a postmortem out now explaining what happened and how we mitigated the response:
tanstack.com/blog/npm-sup...
No other TanStack packages outside of the Router monorepo were impacted
Big oof
Check out our plan to create a more secure future for the JavaScript community.👇
https://github.blog/security/supply-chain-security/our-plan-for-a-more-secure-npm-supply-chain/
Big oof
- eslint-config-prettier
- 8.10.1
- 9.1.1
- 10.1.6
- 10.1.7
- eslint-plugin-prettier:
- 4.2.2
- 4.2.3
- snyckit:
- 0.11.9
- @pkgr/core:
- 0.2.8
- napi-postinstall:
- 0.3.1
Thanks all, and sorry for my negligence.
- eslint-config-prettier
- 8.10.1
- 9.1.1
- 10.1.6
- 10.1.7
- eslint-plugin-prettier:
- 4.2.2
- 4.2.3
- snyckit:
- 0.11.9
- @pkgr/core:
- 0.2.8
- napi-postinstall:
- 0.3.1
Thanks all, and sorry for my negligence.
They disabled postinstall a long time ago, the main attack vector.
Now they’ve added the minimumReleaseAge option to ignore new versions for, say, a day.
They disabled postinstall a long time ago, the main attack vector.
Now they’ve added the minimumReleaseAge option to ignore new versions for, say, a day.
echo "ignore-scripts=true" >> .npmrc
For yarn berry:
echo "enableScripts: false" >> .yarnrc.yml
pnpm and bun are already safe, postinstall is disabled by default (another reason to migrate).
echo "ignore-scripts=true" >> .npmrc
For yarn berry:
echo "enableScripts: false" >> .yarnrc.yml
pnpm and bun are already safe, postinstall is disabled by default (another reason to migrate).