
Loading

Loading
We use strictly necessary cookies to run this site, and analytics cookies to understand how it's used. See our Privacy Policy for details.
A GitHub-reviewed security advisory, not necessarily under active exploitation the way our CISA KEV advisories are, but a real, disclosed vulnerability in an open-source dependency.
Affected packages
Vulnerable: < 1.80.0-v2.20.0.20260717062331-baf6ed501b68
Patched in 1.80.0-v2.20.0.20260717062331-baf6ed501b68
Details
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.
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:
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.
Systems running one of the following versions are affected:
4.0.0 through 4.16.0 (including RC versions)3.0.0 through 3.4.12 (including RC versions)The vulnerability has been addressed in the latest releases. The patch disables filesystem-backed module loading for Action scripts so that only the intended native zitadel/* modules can be required.
If an immediate upgrade is not possible:
org.action.write / org.flow.write (or ORG_OWNER) to untrusted administrators in multi-tenant environments.require() of filesystem paths.login-client.pat, machine keys) so they are not readable inside the API process filesystem.If you have any questions or comments about this advisory, please email us at [email protected]
Thanks to Dor Konis (@dkonis) and Feras Daragma (@FerasTr) from GE Vernova, and to pyuysig, for finding and reporting this vulnerability.
EPSS, exploit probability
Low0.39%
estimated chance of real-world exploitation in the next 30 days, higher than 33.4% of every CVE FIRST.org scores
Refreshed 11/9/2026, via FIRST.org's EPSS model, not CVSS, this measures likelihood of exploitation, not how severe it would be.
Talk to us about this
Find out whether this dependency (or others like it) is actually reachable in your codebase.
Get help patching, or building dependency-scanning into your pipeline going forward.
A secure code review or supply chain review finds this before an advisory does.