Back to skill

Security audit

Vault-0: Agent Security, Monitor & x402 Wallet for OpenClaw

Security checks for vulnerabilities and agentic risk

Overview

Vault-0’s purpose is coherent, but it asks users to install an unnotarized, mutable desktop app that will handle secrets and monitoring data.

Review before installing. The skill appears purpose-aligned, but only install it if you trust the GitHub publisher and are comfortable with an unnotarized macOS app handling OpenClaw API keys, agent activity, policies, and optional wallet material. Prefer a pinned, signed, notarized release with independent checksum or signature verification, and back up vault/config data before using the uninstall commands.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Error
Location
SKILL.md:52
Finding
Unauthenticated and Mutable Software Installation Workflow## Vulnerability Details **File Location**: `SKILL.md:36`, `SKILL.md:39`, `SKILL.md:52-76`, `SKILL.md:140` **Vulnerability Type**: Unpinned dependencies and insufficient artifact authentication **Risk Level**: High ### Vulnerable Code ```bash git clone https://github.com/0-Vault/Vault-0.git && cd Vault-0 && npm install && npm run tauri build ``` ```text The DMG is not yet Apple notarized (no $99/yr Apple Developer account). macOS Gatekeeper may prompt on first launch. You can bypass with right-click > Open, or build from source for full trust. ``` ```bash VERSION=$(curl -s https://api.github.com/repos/0-Vault/Vault-0/releases/latest | grep '"tag_name"' | cut -d'"' -f4) && ARCH=$(uname -m) && if [ "$ARCH" = "arm64" ]; then SUFFIX="aarch64"; else SUFFIX="x86_64"; fi && echo "Downloading Vault-0 ${VERSION} for ${ARCH}..." && curl -sL "https://github.com/0-Vault/Vault-0/releases/download/${VERSION}/Vault-0_${VERSION}_${SUFFIX}.dmg" -o /tmp/Vault-0.dmg && echo "Downloaded to /tmp/Vault-0.dmg" ``` ```bash shasum -a 256 /tmp/Vault-0.dmg ``` ```bash hdiutil attach /tmp/Vault-0.dmg -nobrowse && cp -R "/Volumes/Vault-0/Vault-0.app" /Applications/ && hdiutil detach "/Volumes/Vault-0" && rm /tmp/Vault-0.dmg && echo "Vault-0 installed to /Applications" ``` ```bash npm install -g openclaw@latest ``` ### Technical Analysis The installation procedure resolves the mutable GitHub `latest` release at execution time, downloads an unnotarized DMG, and installs it under `/Applications`. It does not perform an automatic comparison against a pinned, independently authenticated digest or verify a trusted code-signing identity. Computing and displaying the downloaded file's SHA-256 digest detects accidental corruption only when compared against a trusted expected value. Asking the user to compare the digest with a value hosted ...[truncated 2654 chars]
Remediation
## Remediation Suggestions 1. Pin Vault-0 to a reviewed, immutable release version and commit hash rather than resolving `releases/latest`. 2. Sign the macOS application with a Developer ID certificate and submit it for Apple notarization. Do not instruct users to bypass Gatekeeper. 3. Publish signed release manifests containing artifact names and SHA-256 digests. Verify the manifest using a trusted public key embedded in or independently distributed with the Skill. 4. Make checksum and signature verification automatic and fail closed before mounting the DMG. Merely displaying a digest is insufficient. 5. Verify the application's code-signing identity and notarization status with `codesign` and `spctl` before copying it into `/Applications`. 6. Pin source builds to a reviewed commit or signed tag. Avoid cloning and building the mutable default branch. 7. Commit and review dependency lockfiles, use `npm ci` instead of `npm install`, and enforce integrity metadata during reproducible builds. 8. Replace `openclaw@latest` with an explicitly reviewed version and document a controlled update process. 9. Publish reproducible-build instructions so users can compare locally produced artifacts with official signed releases. 10. Treat any artifact, signature, checksum, or signing-identity mismatch as a fatal error and remove the downloaded file without executing or mounting it.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (18)

Credential Access

High
Category
Privilege Escalation
Content
---
name: vault0
description: Security suite for OpenClaw agents. Encrypted secret storage (AES-256-GCM), real-time activity monitoring via gateway WebSocket, policy enforcement, and native x402 payment wallet with EIP-3009 signing. Secure API keys, watch agent behavior, and handle machine-to-machine micropayments. macOS desktop app (Rust + Tauri). Reads ~/.openclaw/.env during hardening. Installation downloads a DMG from GitHub releases. After install, the app makes no external network calls and only listens on localhost.
homepage: https://github.com/0-Vault/Vault-0
repository: https://github.com/0-Vault/Vault-0
metadata: {"emoji":"🔐","category":"security","os":"macos","minOS":"12","dependencies":["openclaw"],"configPaths":["~/.openclaw/.env","~/.openclaw/openclaw.json"],"networkAccess":"localhost-only-after-install","installNetworkAccess":"github-releases-download","persistence":"installed-app"}
Confidence
60% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Credential Access

High
Category
Privilege Escalation
Content
---
name: vault0
description: Security suite for OpenClaw agents. Encrypted secret storage (AES-256-GCM), real-time activity monitoring via gateway WebSocket, policy enforcement, and native x402 payment wallet with EIP-3009 signing. Secure API keys, watch agent behavior, and handle machine-to-machine micropayments. macOS desktop app (Rust + Tauri). Reads ~/.openclaw/.env during hardening. Installation downloads a DMG from GitHub releases. After install, the app makes no external network calls and only listens on localhost.
homepage: https://github.com/0-Vault/Vault-0
repository: https://github.com/0-Vault/Vault-0
metadata: {"emoji":"🔐","category":"security","os":"macos","minOS":"12","dependencies":["openclaw"],"configPaths":["~/.openclaw/.env","~/.openclaw/openclaw.json"],"networkAccess":"localhost-only-after-install","installNetworkAccess":"github-releases-download","persistence":"installed-app"}
Confidence
60% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Credential Access

High
Category
Privilege Escalation
Content
---
name: vault0
description: Security suite for OpenClaw agents. Encrypted secret storage (AES-256-GCM), real-time activity monitoring via gateway WebSocket, policy enforcement, and native x402 payment wallet with EIP-3009 signing. Secure API keys, watch agent behavior, and handle machine-to-machine micropayments. macOS desktop app (Rust + Tauri). Reads ~/.openclaw/.env during hardening. Installation downloads a DMG from GitHub releases. After install, the app makes no external network calls and only listens on localhost.
homepage: https://github.com/0-Vault/Vault-0
repository: https://github.com/0-Vault/Vault-0
metadata: {"emoji":"🔐","category":"security","os":"macos","minOS":"12","dependencies":["openclaw"],"configPaths":["~/.openclaw/.env","~/.openclaw/openclaw.json"],"networkAccess":"localhost-only-after-install","installNetworkAccess":"github-releases-download","persistence":"installed-app"}
Confidence
60% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Credential Access

High
Category
Privilege Escalation
Content
---
name: vault0
description: Security suite for OpenClaw agents. Encrypted secret storage (AES-256-GCM), real-time activity monitoring via gateway WebSocket, policy enforcement, and native x402 payment wallet with EIP-3009 signing. Secure API keys, watch agent behavior, and handle machine-to-machine micropayments. macOS desktop app (Rust + Tauri). Reads ~/.openclaw/.env during hardening. Installation downloads a DMG from GitHub releases. After install, the app makes no external network calls and only listens on localhost.
homepage: https://github.com/0-Vault/Vault-0
repository: https://github.com/0-Vault/Vault-0
metadata: {"emoji":"🔐","category":"security","os":"macos","minOS":"12","dependencies":["openclaw"],"configPaths":["~/.openclaw/.env","~/.openclaw/openclaw.json"],"networkAccess":"localhost-only-after-install","installNetworkAccess":"github-releases-download","persistence":"installed-app"}
Confidence
60% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Credential Access

High
Category
Privilege Escalation
Content
description: Security suite for OpenClaw agents. Encrypted secret storage (AES-256-GCM), real-time activity monitoring via gateway WebSocket, policy enforcement, and native x402 payment wallet with EIP-3009 signing. Secure API keys, watch agent behavior, and handle machine-to-machine micropayments. macOS desktop app (Rust + Tauri). Reads ~/.openclaw/.env during hardening. Installation downloads a DMG from GitHub releases. After install, the app makes no external network calls and only listens on localhost.
homepage: https://github.com/0-Vault/Vault-0
repository: https://github.com/0-Vault/Vault-0
metadata: {"emoji":"🔐","category":"security","os":"macos","minOS":"12","dependencies":["openclaw"],"configPaths":["~/.openclaw/.env","~/.openclaw/openclaw.json"],"networkAccess":"localhost-only-after-install","installNetworkAccess":"github-releases-download","persistence":"installed-app"}
---

# Vault-0
Confidence
60% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
## Step 4: Install

```bash
hdiutil attach /tmp/Vault-0.dmg -nobrowse && cp -R "/Volumes/Vault-0/Vault-0.app" /Applications/ && hdiutil detach "/Volumes/Vault-0" && rm /tmp/Vault-0.dmg && echo "Vault-0 installed to /Applications"
```

## Step 5: Launch
Confidence
85% confidence
Finding
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Tool Parameter Abuse

High
Category
Tool Misuse
Content
To completely remove Vault-0:

```bash
rm -rf /Applications/Vault-0.app
rm -rf ~/Library/Application\ Support/Vault0
rm -rf ~/.config/vault0
```
Confidence
90% confidence
Finding
This uninstall command permanently deletes the installed app bundle from /Applications with no warning or confirmation. While the target is specific, agent-executed destructive commands can still cause unintended software removal or be run in the wrong context, making the pattern operationally dangerous.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
To completely remove Vault-0:

```bash
rm -rf /Applications/Vault-0.app
rm -rf ~/Library/Application\ Support/Vault0
rm -rf ~/.config/vault0
```
Confidence
90% confidence
Finding
This uninstall command permanently deletes the installed app bundle from /Applications with no warning or confirmation. While the target is specific, agent-executed destructive commands can still cause unintended software removal or be run in the wrong context, making the pattern operationally dangerous.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```bash
rm -rf /Applications/Vault-0.app
rm -rf ~/Library/Application\ Support/Vault0
rm -rf ~/.config/vault0
```
Confidence
90% confidence
Finding
The fully matched command removes ~/Library/Application Support/Vault0 recursively and forcefully. In this context it is intended for uninstall, but it still presents a real safety risk because it destroys user data with no adjacent cautionary guidance or confirmation barrier.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```bash
rm -rf /Applications/Vault-0.app
rm -rf ~/Library/Application\ Support/Vault0
rm -rf ~/.config/vault0
```
Confidence
85% confidence
Finding
The fully matched command removes ~/Library/Application Support/Vault0 recursively and forcefully. In this context it is intended for uninstall, but it still presents a real safety risk because it destroys user data with no adjacent cautionary guidance or confirmation barrier.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```bash
rm -rf /Applications/Vault-0.app
rm -rf ~/Library/Application\ Support/Vault0
rm -rf ~/.config/vault0
```
Confidence
90% confidence
Finding
The fully matched command removes ~/Library/Application Support/Vault0 recursively and forcefully. In this context it is intended for uninstall, but it still presents a real safety risk because it destroys user data with no adjacent cautionary guidance or confirmation barrier.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```bash
rm -rf /Applications/Vault-0.app
rm -rf ~/Library/Application\ Support/Vault0
rm -rf ~/.config/vault0
```

This removes the app, encrypted vault, and policy files. Wallet keys in macOS Keychain must be removed separately via Keychain Access (service: vault0-wallet).
Confidence
90% confidence
Finding
This command recursively deletes the user's vault0 config directory without validation or warning. Even though the path is product-specific, destructive shell commands in agent skills are hazardous because they can be executed automatically and eliminate data needed for recovery, audit, or rollback.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
```bash
rm -rf /Applications/Vault-0.app
rm -rf ~/Library/Application\ Support/Vault0
rm -rf ~/.config/vault0
```

This removes the app, encrypted vault, and policy files. Wallet keys in macOS Keychain must be removed separately via Keychain Access (service: vault0-wallet).
Confidence
90% confidence
Finding
This command recursively deletes the user's vault0 config directory without validation or warning. Even though the path is product-specific, destructive shell commands in agent skills are hazardous because they can be executed automatically and eliminate data needed for recovery, audit, or rollback.

Credential Access

High
Category
Privilege Escalation
Content
rm -rf ~/.config/vault0
```

This removes the app, encrypted vault, and policy files. Wallet keys in macOS Keychain must be removed separately via Keychain Access (service: vault0-wallet).

## Requirements
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
The manifest description frames external networking as limited to downloading a DMG from GitHub releases, followed by localhost-only operation. However, the documented alternative installation method explicitly instructs cloning from GitHub and running npm install, which requires additional external network access beyond the declared scope.

Intent-Code Divergence

Medium
Confidence
96% confidence
Finding
The security notes say the only external network call is installation-time download from GitHub releases, but the documented install command also calls the GitHub API to resolve the latest version. This is a direct contradiction between the prose description of network behavior and the actual documented installation steps.

External Transmission

Medium
Category
Data Exfiltration
Content
Detect architecture and download the correct build:

```bash
VERSION=$(curl -s https://api.github.com/repos/0-Vault/Vault-0/releases/latest | grep '"tag_name"' | cut -d'"' -f4) && ARCH=$(uname -m) && if [ "$ARCH" = "arm64" ]; then SUFFIX="aarch64"; else SUFFIX="x86_64"; fi && echo "Downloading Vault-0 ${VERSION} for ${ARCH}..." && curl -sL "https://github.com/0-Vault/Vault-0/releases/download/${VERSION}/Vault-0_${VERSION}_${SUFFIX}.dmg" -o /tmp/Vault-0.dmg && echo "Downloaded to /tmp/Vault-0.dmg"
```

If the download fails, the user can manually download from: https://github.com/0-Vault/Vault-0/releases
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The uninstall section contains irreversible deletion commands against application and user data paths without a prominent adjacent warning or confirmation step. In an agent-executed context, terse destructive commands increase the risk of accidental data loss, especially if users do not understand that vault contents and policy files will be removed permanently.

Static analysis

Detected: suspicious.destructive_delete_command

Documentation contains a destructive delete command without an explicit confirmation gate.

Warn
Code
suspicious.destructive_delete_command
Location
SKILL.md:130