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. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →