GHSA-cqmh-pcgr-q42f: @axonflow/openclaw: credential exposure via insecure file permissions
GHSA-cqmh-pcgr-q42f MEDIUMThe AxonFlow OpenClaw plugin stores registration credentials — including hashed credentials and instance IDs — in directories and files with world-readable permissions (0755/default umask), allowing any local user on the same host to read them without any privilege escalation. While this requires local system access and carries no public exploit or CISA KEV listing, the real threat surface is shared DevOps environments: CI/CD build hosts, developer workstations, and multi-tenant servers running AI agent tooling are realistic scenarios where a low-privilege attacker could harvest credentials laterally. With 4 downstream dependents and 135 other CVEs tracked in the same package, this plugin's security posture warrants scrutiny before broader deployment. Upgrade to @axonflow/openclaw 2.0.0 immediately — the fix enforces 0700 on all plugin directories at every startup and refuses to load any credential file without strict 0600 mode.
What is the risk?
Medium risk in single-user workstation deployments, but elevated in multi-user or shared server environments. The CVSS 5.5 score (AV:L/AC:L/PR:L/UI:N/C:H/I:N/A:N) reflects local-only exploitation requiring only low privileges, yet delivers high confidentiality impact on the credential material. No remote exploitability, no active exploitation observed, and EPSS data unavailable. The 135 other CVEs in the same package is a systemic red flag for this plugin's security development maturity.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| OpenClaw | npm | < 2.0.0 | 2.0.0 |
Do you use OpenClaw? You're affected.
How severe is it?
What is the attack surface?
What should I do?
5 steps-
Upgrade @axonflow/openclaw to version 2.0.0 immediately — the patch enforces 0700 on all plugin directories at every invocation.
-
On existing installations before upgrade: chmod 0700 ~/.config/axonflow/ ~/.cache/axonflow/ && chmod 0600 ~/.config/axonflow/try-registration.json.
-
After upgrading, any credential file with non-0600 permissions will be rejected — re-register the plugin or chmod 0600 the existing file.
-
Audit shared systems for world-readable AI agent config directories: find ~/.config ~/.cache -name '*.json' -perm /o+r 2>/dev/null.
-
In CI/CD environments, ensure agent home directories are not shared across pipeline users or use isolated per-job home directories.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is GHSA-cqmh-pcgr-q42f?
The AxonFlow OpenClaw plugin stores registration credentials — including hashed credentials and instance IDs — in directories and files with world-readable permissions (0755/default umask), allowing any local user on the same host to read them without any privilege escalation. While this requires local system access and carries no public exploit or CISA KEV listing, the real threat surface is shared DevOps environments: CI/CD build hosts, developer workstations, and multi-tenant servers running AI agent tooling are realistic scenarios where a low-privilege attacker could harvest credentials laterally. With 4 downstream dependents and 135 other CVEs tracked in the same package, this plugin's security posture warrants scrutiny before broader deployment. Upgrade to @axonflow/openclaw 2.0.0 immediately — the fix enforces 0700 on all plugin directories at every startup and refuses to load any credential file without strict 0600 mode.
Is GHSA-cqmh-pcgr-q42f actively exploited?
No confirmed active exploitation of GHSA-cqmh-pcgr-q42f has been reported, but organizations should still patch proactively.
How to fix GHSA-cqmh-pcgr-q42f?
1. Upgrade @axonflow/openclaw to version 2.0.0 immediately — the patch enforces 0700 on all plugin directories at every invocation. 2. On existing installations before upgrade: chmod 0700 ~/.config/axonflow/ ~/.cache/axonflow/ && chmod 0600 ~/.config/axonflow/try-registration.json. 3. After upgrading, any credential file with non-0600 permissions will be rejected — re-register the plugin or chmod 0600 the existing file. 4. Audit shared systems for world-readable AI agent config directories: find ~/.config ~/.cache -name '*.json' -perm /o+r 2>/dev/null. 5. In CI/CD environments, ensure agent home directories are not shared across pipeline users or use isolated per-job home directories.
What systems are affected by GHSA-cqmh-pcgr-q42f?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, multi-user AI development environments, CI/CD pipelines running AI agents.
What is the CVSS score for GHSA-cqmh-pcgr-q42f?
GHSA-cqmh-pcgr-q42f has a CVSS v3.1 base score of 5.5 (MEDIUM).
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0012 Valid Accounts AML.T0037 Data from Local System AML.T0055 Unsecured Credentials AML.T0083 Credentials from AI Agent Configuration AML.T0084 Discover AI Agent Configuration Compliance Controls Affected
What are the technical details?
Original Advisory
## Summary Two related permission defects in this AxonFlow plugin allowed registration credentials and cache state to be readable by other local users on hosts where the calling user's home directory was at the conventional `0755` mode. ## Affected versions Versions 1.3.2 and below. ## Impact 1. **Cache and config directory mode.** The plugin's directories under `~/.config/axonflow/` and `~/.cache/axonflow/` were created with the umask-derived default mode (often `0755`) on first use and not subsequently re-validated. On systems where `~/.config/` is itself `0755`, the plugin's registration record (including a hashed credential and `instance_id`) was traversable by other local users. 2. **Credential file mode at load time.** The plugin loaded its `try-registration.json` credential file without validating that the file mode was `0600`. A registration file written by a misconfigured tool, copied across systems, or restored from backup could end up world-readable, and the plugin would silently use it. The fix restores `0700` on all plugin directories on every plugin invocation (not only first creation) and refuses to load credential files with non-`0600` modes. ## Remediation Upgrade to the patched plugin version listed under Vulnerabilities. On startup the plugin will repair existing directory modes; existing credential files with overly permissive modes will be refused, requiring the user to re-register or `chmod 0600` the file. ## Credit Identified by AxonFlow internal security review.
Exploitation Scenario
An attacker with a low-privilege shell on a shared development server where a developer has run the AxonFlow OpenClaw plugin traverses into ~/.config/axonflow/ (accessible due to 0755 mode on the parent and plugin directories) and reads try-registration.json, which is world-readable. The file contains hashed registration credentials and an instance_id. The attacker extracts these values and replays them against AxonFlow services to authenticate as the victim, gaining access to the victim's registered AI agent configuration, orchestrated workflows, and any tools or data sources exposed through the agent.
Weaknesses (CWE)
CWE-552 Files or Directories Accessible to External Parties
Primary
CWE-732 Incorrect Permission Assignment for Critical Resource
Primary
CWE-552 — Files or Directories Accessible to External Parties: The product makes files or directories accessible to unauthorized actors, even though they should not be.
- [Implementation, System Configuration, Operation] When storing data in the cloud (e.g., S3 buckets, Azure blobs, Google Cloud Storage, etc.), use the provider's controls to disable public access.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N References
Timeline
Related Vulnerabilities
CVE-2026-33579 9.9 OpenClaw: scope bypass escalates low-priv to admin
Same package: openclaw CVE-2026-32922 9.9 OpenClaw: privilege escalation to RCE via token scope bypass
Same package: openclaw CVE-2026-30741 9.8 OpenClaw: RCE via request-side prompt injection
Same package: openclaw CVE-2026-32038 9.8 Analysis pending
Same package: openclaw CVE-2026-53838 9.8 OpenClaw: approval scope bypass via reconnection state
Same package: openclaw