CVE-2026-73654: Trigger.dev: Prototype pollution via run metadata operations → process-wide cross-tenant DoS
The run-metadata update endpoint PUT /api/v1/runs/:runId/metadata applies client-supplied
“operations” by passing the attacker-controlled operation.key straight into
new JSONHeroPath(operation.key).set(newMetadata, value)
(packages/core/src/v3/runMetadata/operations.ts:22-23), with no prototype-pollution guard
(@jsonhero/path@^1.0.21 does not reject __proto__/constructor/prototype).
A request with key: "$.__proto__.polluted" sets Object.prototype.polluted in the webapp
process. Because every plain object then inherits that property, it corrupts unrelated code
process-wide and across tenants — including Prisma query building and the Prometheus metrics
client — causing query failures, broken authentication for other tenants’ workers, and an
uncaughtException (denial of service). Only a normal, low-privilege environment API key is
required (one request).
References
- github.com/advisories/GHSA-p28v-f755-9qrg
- github.com/triggerdotdev/trigger.dev/commit/6997aeb05e27d2db47f9eda01fdc8a17c81a1ae0
- github.com/triggerdotdev/trigger.dev/pull/4316
- github.com/triggerdotdev/trigger.dev/releases/tag/v4.5.6
- github.com/triggerdotdev/trigger.dev/security/advisories/GHSA-p28v-f755-9qrg
- nvd.nist.gov/vuln/detail/CVE-2026-73654
Code Behaviors & Features
Detect and mitigate CVE-2026-73654 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →