CVE-2026-85057
### Summary A vulnerability in ZITADEL Actions V1 allows an organization Action author to read files from the ZITADEL host filesystem through the JavaScript `require()` module loader. On common self-hosted deployments this can be chained to steal bootstrap credentials (including the Login Client PAT) and escalate from a single-tenant organization owner to instance administrator. ### Impact ZITADEL Actions V1 run custom JavaScript inside the ZITADEL server process at OIDC, SAML, and login-flow trigger points. The runtime enables the goja Node-compatible `require()` registry without restricting the source loader, so Action scripts can load host files readable by the ZITADEL process (notably `.js` and `.json`, and in some cases other file contents via error channels). An attacker with **ORG_OWNER** on any organization (which includes `org.action.write` and `org.flow.write`) can therefore: * Read process-readable host files, including configuration or secrets mounted into the API container (for example service-account material, projected secrets, or config carrying sensitive values). * On deployments that follow ZITADEL’s documented bootstrap paths (`ZITADEL_FIRSTINSTANCE_LOGINCLIENTPATPATH`, `ZITADEL_FIRSTINSTANCE_MACHINEKEYPATH`), recover instance-wide credentials such as the **IAM_LOGIN_CLIENT** PAT or the **IAM_OWNER** service-account key, enabling escalation to full instance control. This collapses the expected multi-tenant isolation boundary: a tenant organization administrator is not meant to access host filesystem secrets or instance-wide credentials. **Scope note:** This issue affects **Actions V1**. Host command execution was not identified as part of this vulnerability. Impact depends on what the ZITADEL process can read on disk and on deployment layout — documented Compose and quick-start setups that write bootstrap PATs or machine keys into the API container amplify severity. ### Affected Versions Systems running one of the following versions are a
Properties
- summary
- ZITADEL: Actions V1 sandbox escape: host file read via require()
- severity
- high
- cvss_score
- 8.7
- retrieved_at
- 2026-09-25T06:02:49+00:00
- ghsa_published
- 2026-09-24T18:19:32Z
- source_url
- https://github.com/advisories/GHSA-fgmf-7rf8-m6vf
- ghsa_updated
- 2026-09-24T18:19:34Z
- ghsa_id
- GHSA-fgmf-7rf8-m6vf
- last_source
- GitHub Advisory Database
- cve_id
- CVE-2026-85057
- cvss_vector
- CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N
- signal_observed_at
- 2026-09-25T06:02:49+00:00
- is_ghsa_only
- false
Related Entities (4)
HAS_WEAKNESS (1)
AFFECTS (1)
REPORTED_BY (1)
VULNERABLE_TO (1)
Explore deeper with Ninja Signal's threat intelligence graph