# CVE-2026-73654: Trigger.dev prototype pollution in run metadata operations

Source: https://junglewise.ai/threats/cve-2026-73654-trigger-dev-prototype-pollution-in-run-metadata-operations  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-08-13. Updated: 2026-09-24  
License: CC BY 4.0 with a link back

CVE-2026-73654 · Severity: high · CVSS 8.5 · Published 2026-08-13

Trigger.dev's run metadata update API endpoint fails to validate user-supplied object property paths, allowing an attacker with a normal API key to pollute the JavaScript Object.prototype. This single request corrupts the entire application process, breaking authentication for other tenants' workers and crashing the shared multi-tenant webapp service, causing full denial of service for all users.

Technologies: [Trigger.dev](https://junglewise.ai/threats/technologies/trigger-dev). Vendors: [npm](https://junglewise.ai/threats/vendors/npm), [Trigger.dev](https://junglewise.ai/threats/vendors/trigger-dev).

## Quick answers

**Is CVE-2026-73654 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-73654 being exploited in the wild.

**How severe is CVE-2026-73654?** High severity, with a CVSS score of 8.5, published 13 August 2026.

**Which products and versions are affected?** @trigger.dev/core (npm) >= 3.3.8, <= 4.5.5, SEMVER:introduced=3.3.8,fixed=4.5.6; Trigger.dev >= 3.3.8, <= 4.5.5.

**Is there a fix for CVE-2026-73654?** Yes. @trigger.dev/core (npm): upgrade to 4.5.6 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-73654 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-73654?** Check whether you run @trigger.dev/core (npm) or Trigger.dev at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- @trigger.dev/core (npm): upgrade to 4.5.6 or later

  ```sh
  npm install @trigger.dev/core@4.5.6
  ```


## Technical details

The vulnerability is a prototype pollution flaw in `PUT /api/v1/runs/:runId/metadata` endpoint (packages/core/src/v3/runMetadata/operations.ts). The endpoint accepts client-supplied metadata update operations with an attacker-controlled `operation.key` parameter, which is passed directly to `new JSONHeroPath(operation.key).set(newMetadata, value)` without validation. The underlying `@jsonhero/path@1.0.21` library does not reject dangerous path segments like `__proto__`, `constructor`, or `prototype`. An attacker sending a request with `key: "$.__proto__.polluted"` sets `Object.prototype.polluted` in the webapp process. Since every plain object inherits from Object.prototype, this single request contaminates all subsequent code execution process-wide and across all tenants. The attack requires only a normal, low-privilege environment API key and no user interaction. The pollution breaks Prisma query building (unknown field errors), breaks authentication in `findEnvironmentByApiKey`, and triggers an uncaught exception in the Prometheus metrics client that crashes the entire webapp process. Fixed in version 4.5.6.

## Affected products

- Trigger.dev @trigger.dev/core >= 3.3.8, <= 4.5.5

## Identifiers

- CVE-2026-73654
- GHSA-p28v-f755-9qrg

## Timeline

- 2026-08-13: disclosed: Published to GitHub Advisory Database
- 2026-08-13: patched: Fixed in version 4.5.6
- 2025-01-08: other: Vulnerability introduced in commit 34f8bd588 (PR #1563) at SDK version 3.3.8

## References

- [https://api.github.com/users/MatiasTilleriasLey](https://api.github.com/users/MatiasTilleriasLey)
- [https://github.com/MatiasTilleriasLey](https://github.com/MatiasTilleriasLey)
- [https://api.github.com/users/MatiasTilleriasLey/gists%7B/gist_id%7D](https://api.github.com/users/MatiasTilleriasLey/gists%7B/gist_id%7D)
- [https://api.github.com/users/MatiasTilleriasLey/repos](https://api.github.com/users/MatiasTilleriasLey/repos)
- [https://avatars.githubusercontent.com/u/136657682?v=4](https://avatars.githubusercontent.com/u/136657682?v=4)
- [https://api.github.com/users/MatiasTilleriasLey/events%7B/privacy%7D](https://api.github.com/users/MatiasTilleriasLey/events%7B/privacy%7D)

## Related threats

- [Trigger.dev cross-site request forgery in logout endpoint](https://junglewise.ai/threats/cve-2026-114093-trigger-dev-before-4-5-6-contains-a-cross-site-request-forgery)
- [Trigger.dev missing authentication in task run replay](https://junglewise.ai/threats/cve-2026-114092-trigger-dev-before-4-5-0-performs-no-authentication-or)
- [Trigger.dev cross-tenant authorization bypass in run replay](https://junglewise.ai/threats/cve-2026-114091-trigger-dev-before-4-5-0-looks-up-runs-by-friendlyid-alone-in)
- [Trigger.dev cross-site request forgery in CLI authorization flow](https://junglewise.ai/threats/cve-2026-114089-trigger-dev-before-4-5-2-contains-a-cross-site-request-forgery)
- [Trigger.dev hardcoded default secret authentication bypass in Socket.IO](https://junglewise.ai/threats/cve-2026-114088-trigger-dev-before-4-5-4-contains-a-hardcoded-default-secret)
