---
id: "CVE-2026-114069"
kind: "vulnerability"
aliases: ["CVE-2026-114069"]
title: "Trigger.dev: read-only key can leak root secret key and env vars"
severity: "high"
cvss: 8.6
epss: 0.00258
exploited: false
status: "open"
category: "package"
products: [{"name": "trigger.dev", "fixed": ["4.6.0"], "affected": ">= 0, < 4.6.0", "ecosystem": "npm"}]
ecosystems: ["npm"]
tags: ["api-keys", "ci", "package", "secrets", "self-hosted", "trigger.dev"]
not_affected_if: ["development-environment-only", "full-access-keys-only", "managed-hosting", "no-restricted-api-keys", "no-restricted-read-envvars-keys"]
published_at: "2026-10-21T01:17:30+00:00"
first_seen_at: "2026-10-23T21:57:27+00:00"
updated_at: "2026-10-24T13:15:55+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-114069", "first_seen_at": "2026-10-23T21:57:27+00:00"}, {"source": "analyst", "url": null, "first_seen_at": "2026-10-23T23:50:57+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-114069", "first_seen_at": "2026-10-24T13:15:55+00:00"}]
---

# Trigger.dev: read-only key can leak root secret key and env vars

Trigger.dev before 4.6.0: GET /api/v1/projects/:projectRef/envvars authenticates with read:envvars but returns the environment's root key as TRIGGER_SECRET_KEY (staging, production, preview) plus plaintext secrets. A leaked restricted key (e.g. the Cloud 'Variables only' preset) becomes full environment access: trigger tasks, deploy, mint admin JWTs. Dev environments are not affected.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- npm:trigger.dev affected >= 0, < 4.6.0 fixed 4.6.0

## How to check

Self-hosted: check the webapp image/version (docker image tag; must be >= 4.6.0). List additional API keys with scopes that include read:envvars bound to staging/prod/preview environments; any such key could have fetched the root key. Cloud: in the dashboard API keys page, look for keys using the 'Variables only' preset or custom policies with read:envvars.

## Fix

Upgrade Trigger.dev (self-hosted webapp) to 4.6.0 or later (4.7.7 is the latest seen). Then rotate the environment root secret keys (TRIGGER_SECRET_KEY) and any env vars/secrets that restricted read:envvars keys could read, and revoke or rotate those restricted keys.

## Timeline

- 2026-10-23T21:57:27+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-114069
- 2026-10-23T23:50:57+00:00 analyst — Read GHSA-4gjx-f5hj-678x (vendor, published Sep 14) and VulnCheck/CVE record. Fixed in 4.6.0 (GHSA text says '<= 4.6.0' affected, but CVE and patched '>= 4.6.0' say before 4.6.0; used the CVE). Restricted presets exist only in Trigger.dev Cloud; OSS self-host can only issue FULL_ACCESS keys, so self-host exposure needs a custom key with read:envvars. Whether Cloud is already patched is not stated; unknown. No X conversation, no exploitation reported; advisory has a source-probe PoC in the researcher's repo, not linked publicly.
- 2026-10-24T13:15:55+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-114069

## Documents

- [advisory] GHSA-4gjx-f5hj-678x: Restricted additional API keys can read the environment root secret via the env-var dump https://github.com/triggerdotdev/trigger.dev/security/advisories/GHSA-4gjx-f5hj-678x
- [describes] VulnCheck: Trigger.dev before 4.6.0 Root Secret Disclosure via envvars API Endpoint https://www.vulncheck.com/advisories/trigger-dev-before-4.6.0-root-secret-disclosure-via-envvars-api-endpoint

## From the sources

Trigger.dev before 4.6.0 contains an improper authorization vulnerability in the GET /api/v1/projects/:projectRef/envvars endpoint, which returns the environment's root API key as TRIGGER_SECRET_KEY for staging, production, and preview environments. Attackers holding a restricted read:envvars key can obtain the root secret and plaintext secrets, then trigger tasks and mint admin public JWTs.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
