Summary
Clauster: Non-loopback deployments can serve the dashboard unauthenticated when auth.enabled is unset
A Clauster instance bound to a non-loopback address (e.g. 0.0.0.0 or a LAN IP) can serve the entire dashboard and its API without any authentication, even when the operator has configured a password, if auth.enabled is left at its default (false). The operator believes the instance is password-protected; in reality every request is served unauthenticated.
Affected configurations
All released versions (≤ 0.2.1) where all of the following hold:
hostis a non-loopback address, andauth.password_required: trueand/orauth.reverse_proxy.enabled: trueis set, andauth.enabledis left at its defaultfalse.
Docker deployments are affected: the image binds 0.0.0.0, and the previously-documented docker run command did not set auth.enabled.
Root cause
Two layers checked different flags:
- The runtime auth guard enforces authentication only when
config.auth.enabledis true; when false it passes every request through unauthenticated. - The config validator, for a non-loopback bind, required only one of
auth.password_required/auth.reverse_proxy.enabled/auth.allow_unauthenticated_network, notauth.enabled. So a config with a password butenabled=falsevalidated, started, and enforced nothing.
Proof of concept
With host: 0.0.0.0, auth.password_required: true, a valid auth.password_hash, and auth.enabled unset:
curl http://<host>:7621/api/instances
returns 200 with the full instance list and no credentials. Setting auth.enabled: true returns 401.
Workaround
On any non-loopback deployment, set auth.enabled: true in clauster.yml (or CLAUSTER_AUTH_ENABLED=true) alongside your existing auth.password_required + hash (or reverse-proxy) settings. Alternatively, bind to loopback only and reach it via an SSH tunnel or a trusted authenticating reverse proxy.
Credit
Found during an internal security review.
Impact
An unauthenticated attacker with network access to the instance gains full control of the dashboard: list projects, spawn/stop claude remote-control bridges in any project directory, edit CLAUDE.md, read bridge logs, and (where configured) clone repositories. Because bridges run Claude Code against the host's project directories, this is effectively remote code execution in those projects.
Loopback (127.0.0.1) deployments need no auth by design and are not affected.
A critical operation is accessible without requiring any authentication. Typical impact: any user can invoke the privileged function.
Affected versions
Security releases
Kodem intelligence
Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.
Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter. Kodem's runtime-powered SCA identifies whether this CVE is reachable in your applications.
Already deployed Kodem?
See it in your environmentNew to Kodem? Get a demo →Remediation advice
An upcoming patch release makes the config validator fail closed: a non-loopback bind is refused unless authentication is actually enforced, auth.enabled: true together with auth.password_required (+ a hash) or auth.reverse_proxy.enabled, or the explicit auth.allow_unauthenticated_network opt-out. The README, clauster.yml.example, and Docker docs were corrected to match.
Frequently Asked Questions
- What is GHSA-H4G2-XFMW-Q2C9? GHSA-H4G2-XFMW-Q2C9 is a high-severity missing authentication for critical function vulnerability in clauster (pip), affecting versions <= 0.2.1. It is fixed in 0.2.2. A critical operation is accessible without requiring any authentication.
- Which versions of clauster are affected by GHSA-H4G2-XFMW-Q2C9? clauster (pip) versions <= 0.2.1 is affected.
- Is there a fix for GHSA-H4G2-XFMW-Q2C9? Yes. GHSA-H4G2-XFMW-Q2C9 is fixed in 0.2.2. Upgrade to this version or later.
- Is GHSA-H4G2-XFMW-Q2C9 exploitable, and should I be worried? Whether GHSA-H4G2-XFMW-Q2C9 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
- What actually determines whether GHSA-H4G2-XFMW-Q2C9 is exploitable, and how bad it is? Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
- How do I fix GHSA-H4G2-XFMW-Q2C9? Upgrade
clausterto 0.2.2 or later.