mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
fix(install): only apply default trusted dependencies to npm packages (#25163)
## Summary - The default trusted dependencies list should only apply to packages installed from npm - Non-npm sources (file:, link:, git:, github:) now require explicit trustedDependencies - This prevents malicious packages from spoofing trusted names through local paths or git repos ## Test plan - [x] Added test: file: dependency named "esbuild" does NOT auto-run postinstall scripts - [x] Added test: file: dependency runs scripts when explicitly added to trustedDependencies - [x] Verified tests fail with system bun (old behavior) and pass with new build - [x] Build compiles successfully 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Bot <claude-bot@bun.sh> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Jarred Sumner <jarred@jarredsumner.com> Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
This commit is contained in:
@@ -8,7 +8,9 @@ Unlike other npm clients, Bun does not execute arbitrary lifecycle scripts for i
|
||||
|
||||
<Note>
|
||||
Bun includes a default allowlist of popular packages containing `postinstall` scripts that are known to be safe. You
|
||||
can see this list [here](https://github.com/oven-sh/bun/blob/main/src/install/default-trusted-dependencies.txt).
|
||||
can see this list [here](https://github.com/oven-sh/bun/blob/main/src/install/default-trusted-dependencies.txt). This
|
||||
default list only applies to packages installed from npm. For packages from other sources (such as `file:`, `link:`,
|
||||
`git:`, or `github:` dependencies), you must explicitly add them to `trustedDependencies`.
|
||||
</Note>
|
||||
|
||||
---
|
||||
|
||||
@@ -46,6 +46,13 @@ Once added to `trustedDependencies`, install/re-install the package. Bun will re
|
||||
|
||||
The top 500 npm packages with lifecycle scripts are allowed by default. You can see the full list [here](https://github.com/oven-sh/bun/blob/main/src/install/default-trusted-dependencies.txt).
|
||||
|
||||
<Note>
|
||||
The default trusted dependencies list only applies to packages installed from npm. For packages from other sources
|
||||
(such as `file:`, `link:`, `git:`, or `github:` dependencies), you must explicitly add them to `trustedDependencies`
|
||||
to run their lifecycle scripts, even if the package name matches an entry in the default list. This prevents malicious
|
||||
packages from spoofing trusted package names through local file paths or git repositories.
|
||||
</Note>
|
||||
|
||||
---
|
||||
|
||||
## `--ignore-scripts`
|
||||
|
||||
Reference in New Issue
Block a user