Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain project API key with read:runs scope
-
DeliverySend crafted tags parameter to /realtime/v1/runs
-
ExploitInject boolean condition into ElectricSQL where clause
-
ExecutionDefeat runtimeEnvironmentId tenant guard
-
ImpactExfiltrate TaskRun payloads and metadata across all organizations
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated caller presenting any project API key scoped with read:runs; privilege level is low but non-zero (PR:L). The flaw is reachable via the /realtime/v1/runs endpoint by supplying a tags query parameter containing injected SQL, exploiting the unescaped concatenation into the ElectricSQL shape where clause. Impact is meaningful only on self-hosted instances hosting multiple organizations/tenants - a single-tenant or SaaS-isolated deployment yields no cross-organization data because there is no foreign tenant data colocated. Limiting factors: a valid read:runs API key is mandatory (not unauthenticated), the instance must be self-hosted and multi-tenant, and only versions before 4.5.6 are affected. |
| Impact | This is a credible priority for operators of multi-tenant self-hosted Trigger.dev deployments, not merely a high-CVSS paper risk. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N, score 8.3) indicates network-reachable, low-complexity exploitation requiring only low privilege (PR:L), with high confidentiality impact to both the vulnerable system (VC:H) and subsequent systems (SC:H) - the latter reflecting the cross-tenant data exposure where one tenant reads every other organization's data. The real-world weight of this is high because the authentication barrier is weak: any project API key with the read:runs scope suffices, so a single legitimate low-tier tenant on a shared instance can read all tenants' TaskRun payloads and metadata. However, several escalating signals are MISSING and should temper urgency: no EPSS score is provided, the issue is NOT listed in CISA KEV, and no public proof-of-concept is referenced - so there is no public exploit identified at time of analysis and no evidence of active exploitation. The vector and the SQL-injection mechanism (CWE-89) are internally consistent with the description, so there is no conflict between the CVSS data and the narrative. Net: treat as an urgent patch item specifically for self-hosted multi-organization instances, but exploitation likelihood data is absent rather than elevated. |
| Exploit ScenarioDerived | A customer or insider holding a low-privilege project API key with read:runs scope on a shared self-hosted Trigger.dev instance sends a request to /realtime/v1/runs with a malicious tags parameter that injects a boolean SQL condition. Because the parameter is concatenated unescaped into the ElectricSQL shape where clause, the injected clause overrides the runtimeEnvironmentId tenant guard and streams TaskRun records - including payloads and metadata - belonging to every other organization on the instance. No public exploit code is referenced, so exploitation currently requires the attacker to craft the injection manually. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
SQL injection in Trigger.dev before 4.5.6 lets an authenticated caller holding a project API key with read:runs scope read TaskRun records, including payloads and metadata, across organizations on a multi-tenant self-hosted instance by supplying malicious SQL in the tags query parameter of /realtime/v1/runs. The flaw is high severity but operationally meaningful primarily where multiple organizations share the same self-hosted deployment; single-tenant or SaaS-isolated deployments do not expose foreign tenant data in the same way. No public exploit identified at time of analysis.
RemediationAI
Upgrade self-hosted Trigger.dev to 4.5.6 or later, which is the vendor-released patch version for the affected range. Until upgrade, restrict read:runs project API keys to trusted users and rotate any keys that may have been exposed, accepting that integrations relying on those keys will need updating. If realtime run streaming is not required, block or disable /realtime/v1/runs at the reverse proxy or application layer, recognizing that dashboards and clients using realtime TaskRun streams will fail. For high-risk environments, isolate organizations onto separate self-hosted instances or run single-tenant so cross-organization data is not colocated, though this changes deployment architecture. Review logs for anomalous tags query parameters and unexpected cross-project TaskRun access. Consult the vendor advisory at https://github.com/triggerdotdev/trigger.dev/security/advisories/GHSA-p6j2-2fjh-vc8v and the VulnCheck advisory at https://www.vulncheck.com/advisories/trigger-dev-before-4.5.6-sql-injection-via-tags-in-realtime-runs-api for additional details.
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
The affected component is Trigger.dev's realtime runs API backed by ElectricSQL shape queries. The /realtime/v1/runs endpoint concatenates the unescaped tags query parameter into the ElectricSQL shape WHERE clause, and because the runtimeEnvironmentId tenant guard is enforced through that same query structure, injected boolean conditions can broaden the result set beyond the caller's tenant. This is CWE-89 SQL injection: untrusted input reaches SQL-like query construction without proper parameterization. Exploitation requires a valid project API key with read:runs scope (authenticated, low privilege), and the confidentiality impact is concentrated on self-hosted instances hosting multiple organizations where foreign TaskRun data is colocated; versions before 4.5.6 are affected per the CPE cpe:2.3:a:triggerdotdev:trigger.dev:*:*:*:*:*:*:*:*.
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:H/VI:N/VA:N/SC:H/SI:N/SA:N
Network, low-complexity SQLi needing a low-privilege read:runs API key (PR:L); scope changes (S:C) as it crosses the tenant boundary to read other organizations' data; confidentiality-only impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Trigger.dev before 4.5.6 contains an SQL injection vulnerability in the /realtime/v1/runs endpoint, which concatenates the unescaped tags query parameter into the ElectricSQL shape where clause and defeats the runtimeEnvironmentId tenant guard. Authenticated attackers holding any project API key with read:runs scope can append boolean conditions to stream TaskRun records, including payloads and metadata, from every organization on the same self-hosted instance.
Technical POC Analysis
CWE-89 (SQL injection via string concatenation).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Trigger.dev self-hosted deployments configured for multiple tenants can expose TaskRun payloads and metadata across organizations through a SQL injection flaw in the /realtime/v1/runs tags parameter, affecting confidentiality of tenant data for any organization sharing the instance. Leadership should care because a project API key with read:runs scope is sufficient to reach foreign-tenant records, which can undermine customer trust, contractual isolation commitments, and compliance obligations; single-tenant and SaaS-isolated deployments are not affected in the same way. No public exploit has been identified at time of analysis, but the issue is rated high severity.
No vendor-released patch identified at time of analysis; if version 4.5.6 is available, apply it, and in the interim restrict and rotate read:runs project API keys, isolate multi-tenant self-hosted instances, and monitor for anomalous SQL in the tags parameter.
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
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
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
Cross-tenant path traversal in Trigger.dev versions 4.4.2 through pre-4.5.0-rc.5 allows any authenticated tenant holding
EUVD-2026-106887
GHSA-29hf-7539-5fj8
NVD
CVE.org
EPSS
Exploit-DB