Horizon Alert
Summary of the vulnerability and why it matters
A security issue has been identified in Trigger.dev self-hosted deployments, affecting how authentication is handled. If default secrets are used, an attacker could bypass authentication and gain access to tenant data through default credentials in related services.
- Authentication can be bypassed using default secrets.
- Affects self-hosted deployments using default configurations.
- Confirm relevance and assess exposure for affected systems.
Attack Path
How an attacker could exploit the issue
An attacker can bypass authentication in self-hosted Trigger.dev deployments by exploiting a hardcoded secret for magic link tokens. This allows them to log in as any user and then access sensitive data within the deployment's databases and network infrastructure due to default credentials in runner containers.
- Requires default secrets in deployment.
- Forges magic link tokens to log in.
- Compromises tenant data from databases.
Live Threat
Current exploitation, exposure, and threat context
In self-hosted Docker Compose deployments, the use of default secrets can allow unauthenticated attackers to bypass authentication and gain access to sensitive tenant data. This is possible because a hardcoded secret enables the forging of valid magic link tokens, allowing attackers to log in as any user. Once authenticated, attackers can potentially access databases like Postgres, Redis, and ClickHouse using default credentials, leading to a compromise of all tenant data.
- Tenant data and backend services are at risk.
- Attackers forge magic links to gain access.
- All tenant data could be compromised.
Operational Fix
Recommended remediation, mitigation, and detection steps
This critical vulnerability in self-hosted Trigger.dev deployments with default secrets enables unauthenticated attackers to bypass authentication and gain access to sensitive tenant data through connected databases. Owners of the Trigger.dev application and the underlying infrastructure teams are likely responsible for addressing this issue. The first practical step is to identify all Trigger.dev instances, confirm their reachability and business criticality, and then plan remediation based on these findings.
- Identify Trigger.dev instances and assess risk.
- Confirm reachable instances and accountable owners.
- Plan remediation or temporary risk reduction.