Skip to content

fix: migrate pnpm config to pnpm-workspace.yaml and resolve 85 CVEs across 7 packages#3765

Closed
Luciferxy wants to merge 1 commit into
triggerdotdev:mainfrom
Luciferxy:fix/systeminformation-cve-bump
Closed

fix: migrate pnpm config to pnpm-workspace.yaml and resolve 85 CVEs across 7 packages#3765
Luciferxy wants to merge 1 commit into
triggerdotdev:mainfrom
Luciferxy:fix/systeminformation-cve-bump

Conversation

@Luciferxy
Copy link
Copy Markdown

Summary

This PR does two things:

  1. Migrates pnpm workspace configuration from package.json to pnpm-workspace.yaml (required for pnpm v10 compatibility)
  2. Resolves 85 security vulnerabilities across 7 transitive dependency packages via overrides

Problem

Running pnpm install emitted:

The "pnpm" field in package.json is no longer read by pnpm

This meant three critical config keys were being silently ignored under pnpm v10:

  • patchedDependencies — 10 package patches were not being applied
  • onlyBuiltDependencies — lifecycle script permissions for @prisma/engines, better-sqlite3, esbuild were not being enforced
  • overrides — all dependency overrides (including security patches) were inactive

Additionally, pnpm audit showed 386 vulnerabilities before this change.


Changes

1. Migrated pnpm-workspace.yaml

Moved the following keys from package.jsonpnpm-workspace.yaml:

  • patchedDependencies (10 patches re-enabled)
  • onlyBuiltDependencies
  • overrides (existing + new security overrides)

2. Security overrides added

Package Override CVEs Fixed Issues
hono >=4.12.18 7 Middleware bypass, HTML/CSS injection, cache leakage, JWT validation, bodyLimit bypass
@hono/node-server >=1.19.13 1 Middleware bypass via repeated slashes
protobufjs >=7.5.8 4 Prototype injection, DoS via field names, overlong UTF-8, recursive JSON expansion
mermaid >=11.15.0 4 CSS injection via classDefs/config, HTML injection, infinite loop DoS
axios >=1.15.2 1 Prototype pollution gadget in parseReviver
ws >=8.20.1 1 Uninitialized memory disclosure

3. Direct dependency bump


Validation

Before: 386 vulnerabilities (8 critical, 139 high, 193 moderate, 46 low)
After:  301 vulnerabilities
Net:    85 vulnerabilities resolved ✅

pnpm install runs cleanly with no warnings. All patches and lifecycle scripts are correctly applied.


Remaining vulnerabilities

The following could not be resolved in this PR due to deeper transitive chains or required major framework upgrades:

  • next — used as a transitive dep inside react-email and reference apps; bumping requires testing Next.js 15 compatibility across the monorepo
  • qs / uuid / @kubernetes/client-node chain — requires upstream @kubernetes/client-node to update their locked deps
  • langsmithreferences/nextjs-realtime specific, can be addressed separately

These are tracked and can be addressed in follow-up PRs.


Related

Closes #3365

Copilot AI review requested due to automatic review settings May 27, 2026 19:08
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 27, 2026

⚠️ No Changeset found

Latest commit: f1d1f76

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions
Copy link
Copy Markdown
Contributor

Hi @Luciferxy, thanks for your interest in contributing!

This project requires that pull request authors are vouched, and you are not in the list of vouched users.

This PR will be closed automatically. See https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md for more details.

@github-actions github-actions Bot closed this May 27, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 27, 2026

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 399bf974-dd01-40f9-9f20-66da51b33425

📥 Commits

Reviewing files that changed from the base of the PR and between 5083d16 and f1d1f76.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (3)
  • package.json
  • pnpm-workspace.yaml
  • turbo.json

Walkthrough

This PR updates build and dependency tooling configuration across the monorepo. The turbo devDependency is upgraded from ^1.10.3 to ^2.9.14, and the turbo.json configuration is migrated from the version 1.x "pipeline" key to version 2.x "tasks" key. Concurrently, pnpm configuration (patchedDependencies, overrides, and onlyBuiltDependencies) is relocated from package.json to pnpm-workspace.yaml, centralizing workspace-level dependency constraints and patch directives.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

View 2 additional findings in Devin Review.

Open in Devin Review

Comment thread pnpm-workspace.yaml
Comment on lines +47 to +75
"axios": ">=1.15.2"
"js-yaml@>=3.0.0 <3.14.2": "3.14.2"
"js-yaml@>=4.0.0 <4.1.1": "4.1.1"
"jws@<3.2.3": "3.2.3"
"qs@>=6.0.0 <6.14.1": "6.14.1"
"systeminformation@>=5.0.0 <5.31.0": "^5.31.0"
"lodash@>=4.17 <4.18.0": "^4.18.0"
"lodash-es@>=4.17 <4.18.0": "^4.18.0"
"dompurify@>=3 <3.4.0": "^3.4.1"
"vite@>=5.0.0 <6.4.2": "^6.4.2"
"rollup@>=4 <4.59.0": "^4.59.0"
"flatted@>=3 <3.4.2": "^3.4.2"
"picomatch@>=2 <2.3.2": "^2.3.2"
"picomatch@>=4 <4.0.4": "^4.0.4"
"minimatch@>=3 <3.1.3": "^3.1.3"
"protobufjs": ">=7.5.8"
"fast-xml-parser@>=4 <4.5.5": "^4.5.5"
"fast-xml-parser@>=5 <5.7.0": "^5.7.0"
"path-to-regexp@>=0.1 <0.1.13": "^0.1.13"
"ajv@>=8 <8.18.0": "^8.18.0"
"socket.io-parser@>=4 <4.2.6": "^4.2.6"
"postcss@>=8 <8.5.10": "^8.5.10"
"yaml@>=2 <2.8.3": "^2.8.3"
"semver@>=5 <5.7.2": "^5.7.2"
"defu@>=6 <6.1.5": "^6.1.5"
"hono": ">=4.12.18"
"@hono/node-server": ">=1.19.13"
"mermaid": ">=11.15.0"
"ws": ">=8.20.1"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 Unbounded override specifiers could resolve to future major versions

Several overrides were changed from scoped+capped format (e.g., "axios@>=1.0.0 <1.15.0": "^1.15.0") to unscoped+unbounded format (e.g., "axios": ">=1.15.2"). The >= specifier without an upper bound means that when a new major version of these packages is released (axios 2.x, protobufjs 8.x, hono 5.x, ws 9.x, etc.), a fresh pnpm install could resolve to that breaking major version. The lockfile (pnpm-lock.yaml) currently pins safe versions (e.g., axios@1.16.1), so this is not an immediate issue, but it removes the safety net that ^ provided against major version bumps. This affects: axios, protobufjs, hono, @hono/node-server, mermaid, and ws at pnpm-workspace.yaml:47,62,72-75.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

High severity pnpm audit vulnerabilities insysteminformation

1 participant