Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as tenant (PR:L)
-
DeliverySet webhook alert URL to internal/metadata host
-
ExploitTrigger deployment/run failure via public API
-
ExecutionServer POSTs signed payload following redirects
-
ImpactScan internal hosts or reach IMDSv1 metadata
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a valid authenticated tenant account (or project PAT) with the ability to create or edit a WEBHOOK alert channel, since the vulnerable field is the user-supplied webhook |
| Impact | This is a genuine but moderate-severity issue, not a drop-everything emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N, 5.3) is internally consistent with the description: network-reachable, low complexity, but requiring an authenticated tenant (PR:L), with limited confidentiality and integrity impact and no availability impact. The vendor's own CVSS 3.1 mapping (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N, ~5.4 Medium) agrees. No EPSS score, no CISA KEV listing, and no indication of active exploitation were provided, so this should be treated as 'no public exploit identified at time of analysis' for weaponized/in-the-wild purposes - however, the GHSA advisory includes a detailed, researcher-proven runtime proof-of-concept (self-hosted), so the exploitation technique is publicly documented and reproducible. The main limiting factors keeping real-world risk at Medium rather than High are the authentication requirement (a valid tenant/PAT) and the blind, POST-only nature of the flaw: there is no arbitrary GET exfiltration, only a timing/success oracle plus state-changing POSTs and IMDSv1-via-redirect reach. The most serious signal is the explicit cloud-metadata (169.254.169.254) reach in multi-tenant SaaS deployments, where a low-privileged tenant could pivot toward internal infrastructure. Patch availability (4.5.2) is confirmed, which should drive prioritization: patch is straightforward and should be applied, especially for internet-facing multi-tenant or self-hosted deployments running in cloud environments with IMDSv1 enabled. |
| Exploit ScenarioDerived | An authenticated tenant on a shared Trigger.dev instance creates a WEBHOOK alert channel whose URL points at an internal service or the cloud metadata endpoint (e.g. http://169.254.169.254), then deliberately fails a deployment or run (via the public API) to fire the alert. The webapp server (alertsWorker → DeliverAlertService) issues an HMAC-signed POST to that URL and follows redirects, letting the attacker port-scan internal hosts via timing, send state-changing POSTs, or reach IMDSv1 through a redirect. A working runtime PoC is documented in the GHSA advisory and was proven on a self-hosted instance. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Blind server-side request forgery in Trigger.dev (all versions up to and including 4.5.1, fixed in 4.5.2) lets an authenticated tenant with permission to create or edit a WEBHOOK alert channel supply an arbitrary URL that the multi-tenant webapp server later POSTs to when an alert fires. Because the URL is persisted with no host allowlist or private-IP/metadata blocklist and the server-side fetch follows redirects, a tenant can coerce the server into probing internal hosts and ports through a delivery success/timing oracle, issue state-changing POSTs to internal services, or reach IMDSv1 via a redirect to 169.254.169.254. Exploitation requires a valid account or project PAT and the ability to fire an alert such as a deployment or run failure; the attack is blind and POST-only (the body is a fixed HMAC-signed alert payload), so it does not yield arbitrary GET-based data exfiltration, and impact is markedly higher on cloud hosts with reachable IMDSv1 and no egress filtering. No public exploit tooling was identified at time of analysis, though the upstream advisory documents a reproduction proven against a self-hosted instance.
RemediationAI
Upgrade Trigger.dev to 4.5.2 or later, which is the vendor-released patch; the fix landed via PR https://github.com/triggerdotdev/trigger.dev/pull/4199 (commit 34b1a181c2a1d33a53ebab88f84b05f81fea4254) and is documented in advisory https://github.com/triggerdotdev/trigger.dev/security/advisories/GHSA-q567-cr4x-96w4. If upgrading immediately is not possible, apply compensating controls knowing each has trade-offs: restrict egress from the webapp and alertsWorker containers to required external destinations with an allowlist (blocks internet webhooks until destinations are enumerated, so inventory legitimate webhook endpoints first); explicitly deny outbound traffic to link-local 169.254.0.0/16, RFC1918 ranges and loopback at the network or sidecar proxy layer (this is the single most effective control, but self-hosted operators must maintain the list as infrastructure changes); enforce IMDSv2 (session-token required) on AWS instances so redirect-based IMDSv1 access fails, which is a host-level setting with no application impact; disable or restrict the WEBHOOK alert channel type and audit existing rows in the alert-channel table for URL values pointing at private or link-local hosts, deleting any that are not expected; and tighten who holds project PATs and alert-channel write permissions, since valid authentication is a hard prerequisite for the attack. Note that any detection of prior exploitation is indirect and log-based: look for webapp-user-agent POST requests to internal addresses and for alert deliveries whose URL resolves to private or metadata space.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
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 TypeScript/Node.js background-jobs and workflow platform; this flaw lives in apps/webapp and is a classic CWE-918 server-side request forgery rooted in missing input validation and missing egress controls. The API presenter (app/presenters/v3/ApiAlertChannelPresenter.server.ts) declares the alert-channel url field merely as z.string().optional() with no syntax, scheme, or host validation, and createAlertChannel.server.ts persists the url, secret and version verbatim. The sink is DeliverAlertService in app/v3/services/alerts/deliverAlert.server.ts (mirrored in deliverErrorGroupAlert.server.ts), which executes fetch(webhook.url, {method:'POST', headers:{'x-trigger-signature-hmacsha256':...}, body:rawPayload}) inside the webapp process with no egress guard. Node's fetch follows redirects by default, which is what enables pivoting an allowed-looking URL toward the instance metadata endpoint even where a naive check might exist; a repo-wide search for 169.254, isPrivate, isLoopback, net.isIP and ssrf reportedly returned no hits. The root cause class combines unvalidated user-controlled destination with a server-side HTTP client operating in a privileged network position, and the fixed-body POST constraint is what keeps the primitive blind rather than a full read/exfiltration channel.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Network-reachable alert delivery (AV:N/AC:L) requires an authenticated tenant (PR:L); blind oracle leaks limited info (C:L) and POSTs cause limited internal state change (I:L), no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
Trigger.dev before 4.5.2 contains a blind server-side request forgery vulnerability that allows authenticated tenants to make the webapp server send POST requests to internal hosts by setting an unvalidated webhook alert channel URL. Attackers can point the webhook at internal services or cloud metadata addresses and trigger alerts to scan internal hosts, send state-changing POSTs, or reach IMDSv1 via redirects.
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
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
Related Vulnerabilities in Trigger.dev Authorization and Injection Flaws
View all 29More 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
EUVD-2026-107027
GHSA-3mx6-67xp-8wvp
NVD
CVE.org
EPSS
Exploit-DB