Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid Trigger.dev API key
-
DeliveryDiscover or enumerate victim tenant's run friendlyId
-
ExploitSubmit POST /api/v1/runs/{friendlyId}/replay with attacker's key
-
ExecutionMissing runtimeEnvironmentId filter bypassed in DB query
-
PersistReplayTaskRunService executes run in victim environment
-
ImpactVictim compute resources consumed and side effects re-triggered
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The cross-tenant replay flaw requires: (1) the attacker holds any valid Trigger.dev environment API key (PR:L - a legitimate developer account suffices; no admin privilege is needed); and (2) the attacker can identify or enumerate the |
| Impact | The NVD CVSS 3.1 score of 4.2 (AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L) captures the authenticated and high-complexity nature of the attack but likely understates real-world business impact in multi-tenant SaaS deployments. The AC:H rating is justified: the attacker must know or enumerate another tenant's |
| Exploit ScenarioDerived | An attacker holding a legitimately obtained or compromised Trigger.dev environment API key enumerates or guesses a |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 13, 2026
Cross-tenant run replay in Trigger.dev 4.4.2-4.5.0-rc.3 allows any authenticated API key holder to replay task runs belonging to other tenants by supplying a victim's run friendlyId to the replay endpoint, which performs no tenant isolation check. This unauthorized replay consumes victim compute resources and re-executes side effects such as outbound API calls, webhook triggers, and database writes. A secondary chained code path further allows attacker-controlled payload bytes - planted via a separate object-store path-traversal - to become input to the victim task when payloadType: application/store is in use. No public exploit has been identified at time of analysis, and this CVE is not listed in CISA KEV.
RemediationAI
Upgrade to Trigger.dev version 4.5.0-rc.4, which introduces the runtimeEnvironmentId tenant scope filter in the replay endpoint's database query and adds integrity verification in overrideExistingPayloadPacket(). The patched release is available at https://github.com/triggerdotdev/trigger.dev/releases/tag/v4.5.0-rc.4, backed by fix commit e1950778e2f2007e2d432b8f8a8fc89531c51f19 (https://github.com/triggerdotdev/trigger.dev/commit/e1950778e2f2007e2d432b8f8a8fc89531c51f19) and PR #3756 (https://github.com/triggerdotdev/trigger.dev/pull/3756). For deployments that cannot immediately upgrade, restrict network access to the replay endpoint (POST /api/v1/runs/*/replay) to trusted IP ranges, reducing the pool of principals capable of supplying arbitrary friendlyId values. Additionally, audit object-store access controls to eliminate the prerequisite path-traversal vector that enables payload injection; hardening the object-store layer independently neuters the chained attack path. Disabling the replay API endpoint entirely removes both attack surfaces but eliminates the developer workflow replay capability. API key hygiene - minimizing issued keys and revoking unused ones - limits the authenticated attacker pool.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Trigger.dev is a managed AI agent and workflow platform (CPE: cpe:2.3:a:triggerdotdev:trigger.dev:*:*:*:*:*:*:*:*). The primary flaw is an Insecure Direct Object Reference (IDOR) in the replay route apps/webapp/app/routes/api.v1.runs.$runParam.replay.ts, where prisma.taskRun.findUnique({ where: { friendlyId: runParam } }) omits the mandatory runtimeEnvironmentId scope - a classic multi-tenant isolation failure. The root CWE is CWE-22 (Path Traversal), which manifests in ReplayTaskRunService via overrideExistingPayloadPacket() calling conditionallyImportPacket() on existingTaskRun.payload without verifying the stored bytes' integrity. Because the object-store key is derived from the run record rather than independently validated, any prior path-traversal write to that key can substitute attacker-controlled content. The two weaknesses are related but independent: the IDOR enables cross-tenant replay unconditionally; the payload injection is a chained escalation requiring an additional object-store path-traversal primitive.
Know when Trigger Dev gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L
Cross-tenant replay crosses tenant security boundaries warranting S:C; AC:H reflects needing victim friendlyId; PR:L for any valid API key; no direct confidentiality disclosure confirmed.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Trigger.dev is a platform for building and deploying fully managed AI agents and workflows. From 4.4.2 until 4.5.0-rc.4, POST /api/v1/runs/:runParam/replay in apps/webapp/app/routes/api.v1.runs.$runParam.replay.ts uses prisma.taskRun.findUnique({ where: { friendlyId: runParam } }) without a runtimeEnvironmentId filter, then ReplayTaskRunService in apps/webapp/app/v3/services/replayTaskRun.server.ts replays the selected run in the victim environment. Any valid environment API key can therefore replay another tenant's run by friendlyId, consuming victim resources and repeating side effects; when payloadType: "application/store" is used, overrideExistingPayloadPacket() calls conditionallyImportPacket() on existingTaskRun.payload without an integrity check, so payload bytes overwritten through a separate object-store path-traversal vulnerability become attacker-controlled input to the victim task. This issue is fixed in version 4.5.0-rc.4.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
More in Trigger Dev
View allPrototype pollution in Trigger.dev's run metadata API (versions 3.3.8 through 4.5.5) lets any authenticated tenant corru
Cross-tenant authorization bypass in Trigger.dev before 4.5.6 lets a caller holding a valid API key for one project act
Missing authorization on the run replay API endpoint in Trigger.dev before 4.5.2 allows authenticated attackers to injec
Cross-tenant path traversal in Trigger.dev versions 4.4.2 through pre-4.5.0-rc.5 allows any authenticated tenant holding
Path traversal in Trigger.dev's packet presign API routes (versions 4.4.2 through 4.4.x) allows a holder of any valid pr
Account takeover in Trigger.dev before 4.5.2 allows an unauthenticated remote attacker to hijack any existing user accou
Trigger.dev before 4.6.0 allows an authenticated low-privilege user to bind an arbitrary GitHub App installation to thei
Server-side request forgery in Trigger.dev before 4.5.2 allows authenticated organization members to register webhook al
EUVD-2026-58479
NVD
CVE.org
EPSS
GitHub
Exploit-DB