{"id":"CVE-2026-114083","kind":"vulnerability","aliases":["CVE-2026-114083"],"related":[],"title":"Trigger.dev: path traversal lets one tenant read or overwrite others' payloads","description":"Trigger.dev before 4.5.0-rc.3 contains a path traversal vulnerability in the api/v1/packets and api/v2/packets endpoints that allows authenticated tenants to escape their object key prefix through an unsanitized filename splat segment. Attackers holding one valid API key can supply ../ sequences to obtain presigned GET or PUT URLs and read or overwrite other tenants' run payloads and outputs.","summary":"Trigger.dev's packets presign endpoints (api/v1 and api/v2) put the request filename into the object-store key unchecked. With one valid API key, ../ sequences yield presigned GET/PUT URLs for other tenants' run payloads and outputs, so you can read or overwrite them. It is exploitable on the aws4fetch backend, which is used whenever static object-store access keys are set (the default for the bundled MinIO self-hosted stack). The AWS SDK/IAM-credential backend is not affected. A full PoC is published in the advisory.","severity":"high","cvss":8.6,"epss":0.00351,"exploited":false,"exploited_at":null,"products":[{"name":"trigger.dev","fixed":["4.5.0-rc.3"],"affected":"<= 4.4.6 (CVE: < 4.5.0-rc.3)","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["minio","multi-tenant","object-store","package","s3","self-hosted","trigger.dev"],"not_affected_if":["iam-credential-chain","managed-hosting","single-tenant","single-tenant-deployment"],"how_to_check":"Self-hosted: check the webapp image/version (<= 4.4.6, CVE lists everything before 4.5.0-rc.3). Check whether OBJECT_STORE_ACCESS_KEY_ID / OBJECT_STORE_SECRET_ACCESS_KEY are set (vulnerable aws4fetch backend). If your object store is shared by several orgs/projects, you are exposed. Check object-store access logs for GET/PUT keys under packets/<other project>/ reached via presigned URLs.","fix":"Upgrade the self-hosted webapp to 4.5.0-rc.3 or later (the GHSA lists patched >= 4.5.0 for the sibling advisory; prefer a stable 4.5.0+). Until then, block '..', '%2e%2e' and encoded variants in the path of /api/v1/packets and /api/v2/packets at your reverse proxy/load balancer. Consider rotating secrets that appeared in run payloads if untrusted tenants had accounts.","status":"open","published_at":"2026-10-21T01:17:32+00:00","first_seen_at":"2026-10-23T21:57:27+00:00","triaged_at":"2026-10-23T22:39:25+00:00","updated_at":"2026-10-24T13:15:55+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-23T22:39:25Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade Trigger.dev to 4.5.0-rc.3 or later.","reach":"internet","title":"Trigger.dev: path traversal lets one tenant read or overwrite others' payloads","impact":"high","summary":"Trigger.dev before 4.5.0-rc.3 fails to sanitize a filename segment in its packets API endpoints. An attacker with one valid API key can use ../ sequences to get presigned URLs for other tenants' run payloads and outputs, reading or overwriting them.","category":"package","who_cares":["trigger.dev","self-hosted","multi-tenant"],"confidence":0.7,"needs_auth":"yes","worst_case":"other tenants' run payloads and outputs readable and overwritable","analyst_note":"Confirm the exact affected version range and whether the hosted cloud service was patched; check the NVD entry and the Trigger.dev release notes for 4.5.0-rc.3.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":["single-tenant-deployment"],"user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000497,"input_tokens":2966,"output_tokens":400,"severity_before":"high"},"analyst_status":"done","analyst_note":"Confirm the exact affected version range and whether the hosted cloud service was patched; check the NVD entry and the Trigger.dev release notes for 4.5.0-rc.3.","search":"'-114083':14A,17A '-2026':13A,16A '4.5.0':121C 'access':90B 'advisori':118B 'affect':110B 'allow':135C 'api':54B,154C 'api/v1':37B 'api/v1/packets':130C 'api/v2':39B 'api/v2/packets':132C 'attack':150C 'authent':136C 'aw':105B 'aws4fetch':80B 'backend':81B,107B 'bundl':98B 'contain':123C 'cve':12A,15A 'default':95B 'endpoint':36B,133C 'escap':139C 'exploit':77B 'filenam':43B,147C 'full':112B 'get':162C 'get/put':59B 'hold':151C 'host':30B,102B 'key':49B,55B,91B,142C,155C 'let':4A 'minio':19B,99B 'multi':21B 'multi-ten':20B 'object':24B,47B,88B,141C 'object-stor':23B,46B,87B 'obtain':160C 'one':5A,52B,152C 'other':10A 'output':67B,175C 'overwrit':9A,73B,169C 'packag':26B 'packet':34B 'path':2A,125C 'payload':11A,65B,173C 'poc':113B 'prefix':143C 'presign':35B,58B,161C 'publish':115B 'put':40B,164C 'rc.3':122C 'read':7A,71B,167C 'request':42B 'run':64B,172C 's3':27B 'sdk/iam-credential':106B 'segment':149C 'self':29B,101B 'self-host':28B,100B 'sequenc':56B,158C 'set':93B 'splat':148C 'stack':103B 'static':86B 'store':25B,48B,89B 'suppli':157C 'tenant':6A,22B,63B,137C,171C 'travers':3A,126C 'trigger.dev':1A,18A,31B,32B,119C 'uncheck':50B 'unsanit':146C 'url':60B,165C 'use':84B 'valid':53B,153C 'vulner':127C 'whenev':85B 'yield':57B","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-21T01:17:32+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-114083","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-114083","severity":null,"published_at":"2026-10-21T01:17:32+00:00","modified_at":"2026-10-21T01:17:32+00:00","first_seen_at":"2026-10-23T21:57:27+00:00","fetched_at":"2026-10-23T22:29:01+00:00","note":null},{"source":"analyst","external_id":"CVE-2026-114083:528","url":null,"severity":null,"published_at":"2026-10-23T23:49:50+00:00","modified_at":"2026-10-23T23:49:50+00:00","first_seen_at":"2026-10-23T23:49:50+00:00","fetched_at":"2026-10-23T23:49:50+00:00","note":"Read GHSA-gx7f-q62h-9fxp (CVE's referenced advisory) and sibling GHSA-888c-px7m-736v. Unconfirmed: PoC is in the advisory itself; no exploitation reports; did not search social. Sibling advisory says managed cloud was shielded by an AWS ALB filter on '..' variants (not a code fix; no vendor statement read on cloud patch). Advisories disagree on fixed version: 4.5.0-rc.3 vs >=4.5.0; 4.4.2 lower bound only in one."},{"source":"epss","external_id":"CVE-2026-114083","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-114083","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T13:15:55+00:00","fetched_at":"2026-10-24T13:15:55+00:00","note":null}],"documents":[{"id":2187,"url":"https://github.com/triggerdotdev/trigger.dev/security/advisories/GHSA-gx7f-q62h-9fxp","title":"GHSA-gx7f-q62h-9fxp: path traversal in packets presign (<= 4.4.6, fixed 4.5.0-rc.3)","kind":"advisory","source":"analyst","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":null},{"id":2188,"url":"https://github.com/triggerdotdev/trigger.dev/security/advisories/GHSA-888c-px7m-736v","title":"GHSA-888c-px7m-736v: cross-tenant object store read/write (4.4.2-4.4.6; cloud note)","kind":"advisory","source":"analyst","text":null,"published_at":null,"relation":"describes","confidence":null,"note":null},{"id":2190,"url":"https://www.cve.org/CVERecord?id=CVE-2026-114083","title":"CVE record CVE-2026-114083 (VulnCheck CNA)","kind":"other","source":"analyst","text":null,"published_at":null,"relation":"mentions","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}