chore: upgrade pnpm to 10.33.2 with security hardening#3489
chore: upgrade pnpm to 10.33.2 with security hardening#3489
Conversation
Addresses path traversal in directories.bin and symlink-escape protection for file:/git: dependencies (CVE protections for reading sensitive files). https://pnpm.io/settings#blockexoticsubdeps Slack thread: https://triggerdotdev.slack.com/archives/C061L2MHW93/p1777625600974279?thread_ts=1777622248.762639&cid=C061L2MHW93 https://claude.ai/code/session_01G759MUqmjsPh9k1qDxbdjG
Updates pnpm from 10.23.0 to 10.33.2 in: - package.json packageManager field - CLAUDE.md version reference - All GitHub Actions workflows (10 files) Security fixes include path traversal protection and symlink-escape protection for file:/git: dependencies. Slack thread: https://triggerdotdev.slack.com/archives/C061L2MHW93/p1777625600974279?thread_ts=1777622248.762639&cid=C061L2MHW93 https://claude.ai/code/session_01G759MUqmjsPh9k1qDxbdjG
Missed 5 hardcoded corepack prepare pnpm@10.23.0 references in the production Dockerfile. https://claude.ai/code/session_01G759MUqmjsPh9k1qDxbdjG
|
WalkthroughThis pull request updates the pnpm package manager version from Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
- AGENTS.md, CONTRIBUTING.md, ai/references/repo.md, apps/supervisor/ Containerfile: bump remaining 10.23.0 refs to 10.33.2 (caught by Devin review) - .github/workflows/e2e.yml: add --if-present to the build:workers step. The script doesn't exist in cli-v3; pnpm 10.23.0 silently passed when running a missing script, but pnpm 10.33.2 exits 1 with ERR_PNPM_RECURSIVE_RUN_NO_SCRIPT. --if-present preserves the existing no-op behavior under the new pnpm. https://claude.ai/code/session_01G759MUqmjsPh9k1qDxbdjG
Blocks transitive deps using file:/git: protocols at install time. Audited the lockfile and all package.json files: zero non-link exotic protocols in the graph, so this is a no-op for resolution today and provides defense-in-depth against future supply-chain attacks via compromised transitive deps. https://pnpm.io/settings#blockexoticsubdeps https://claude.ai/code/session_01G759MUqmjsPh9k1qDxbdjG
|
ready |
Summary
blockExoticSubdeps: truefor supply-chain defenseSecurity improvements in 10.28.2+
directories.binfile:/git:dependencies (prevents reading/etc/passwd,~/.ssh/...)Files updated
package.json—packageManagerfielddocker/Dockerfile— 5corepack preparecallsapps/supervisor/Containerfile— 1corepack preparecallpnpm-workspace.yaml— addedblockExoticSubdeps: trueCLAUDE.md,AGENTS.md,CONTRIBUTING.md,ai/references/repo.md— version referencesVerification
pnpm install --frozen-lockfilesucceeds (no lockfile regen needed)pnpm install(plain) produces zero lockfile diffSlack thread: https://triggerdotdev.slack.com/archives/C061L2MHW93/p1777625600974279?thread_ts=1777622248.762639&cid=C061L2MHW93
https://claude.ai/code/session_01G759MUqmjsPh9k1qDxbdjG