Back to skill

Security audit

Config Manager

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a coherent config-editing helper, but its reference instructions include broad, unverified global tool installation steps that users should review before following.

Install only if you are comfortable reviewing tool installation commands first. Prefer already installed system tools, pinned versions, checksums or signatures, and user-local or virtual-environment installs instead of running the provided sudo, npm -g, pip, or latest-download examples directly.

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
references/formats.md:69
Finding
Unverified and Unpinned Third-Party Dependency Installation## Vulnerability Details **File Location**: `references/formats.md:28-30, 43, 69-74, 89-91, 130-132, 156` **Vulnerability Type**: Unsafe installation of mutable third-party dependencies **Risk Level**: High ### Vulnerable Code At `references/formats.md:28-30`: ```bash sudo dnf install jq # Fedora sudo apt install jq # Debian/Ubuntu brew install jq # macOS ``` At `references/formats.md:43`: ```bash npm install -g ajv-cli ``` At `references/formats.md:69-74`: ```bash wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O yq chmod +x yq sudo mv yq /usr/local/bin/ # Or via pip pip install yq ``` At `references/formats.md:89-91`: ```bash # Install yamllint pip install yamllint ``` At `references/formats.md:130-132`: ```bash pip install toml # or pip install tomli # Python 3.11+ built-in ``` At `references/formats.md:156`: ```bash pip install yq ``` ### Technical Analysis The Skill recommends installing third-party executables and packages without pinning exact versions or verifying artifact integrity. The most serious instance downloads the `yq` executable from a mutable `latest` release URL, marks it executable, and places it in `/usr/local/bin` using `sudo`. No cryptographic checksum, signature, immutable version, or provenance verification is performed. Consequently, the downloaded bytes can change after the Skill has been reviewed. The npm and pip instructions also install mutable package versions from external registries. They do not use lockfiles, hashes, exact versions, isolated environments, or package provenance checks. Global npm installation further increases the affected scope. This creates a supply-chain trust boundary in which compromise of an upstream project, release account, package registry, dependency, distribution channel, or package name can result in attacker-controlled code being installed and executed locally. ### Attack Path 1. An attacker compromises a referenced upstream release, ...[truncated 2055 chars]
Remediation
## Remediation Suggestions 1. **Pin immutable versions** - Replace `latest` URLs with exact release versions. - Pin exact pip and npm package versions. - Maintain dependency lockfiles where applicable. 2. **Verify downloaded artifacts** - Download the checksum or signature through a trusted channel. - Verify SHA-256 or stronger digests before granting execute permission. - Prefer signed releases and validate signatures against a pinned maintainer key. 3. **Avoid privileged global installation** - Install command-line tools into a user-controlled directory or an isolated project environment. - Avoid `sudo` unless system-wide installation is explicitly required and approved. - Do not overwrite an existing executable without confirming its origin and obtaining user consent. 4. **Use isolated dependency environments** - Install Python dependencies in a virtual environment. - Use project-local npm dependencies instead of `npm install -g`. - Use hash-locked dependency installation, such as pip requirements with `--require-hashes`. 5. **Validate package provenance** - Confirm the expected publisher, repository, package name, and release metadata. - Prefer trusted operating-system repositories where their signing and update model meets the deployment requirements. - Review transitive dependencies and use automated dependency vulnerability scanning. 6. **Harden the direct-download workflow** - Download into a securely created temporary directory. - Fail closed if integrity verification does not succeed. - Confirm the target architecture and operating system. - Inspect whether `/usr/local/bin/yq` already exists before installation. - Document a safe rollback or removal procedure.
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (10)

Credential Access

High
Category
Privilege Escalation
Content
3. **Use tools, not manual edits** - `jq`/`yq` for JSON/YAML
4. **Test after changes** - Load config in application context
5. **Respect workspace boundaries** - Only touch ~/openclaw configs
6. **Never commit secrets** - Use .env for sensitive values, gitignore them

## When to Read references/formats.md
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
3. **Use tools, not manual edits** - `jq`/`yq` for JSON/YAML
4. **Test after changes** - Load config in application context
5. **Respect workspace boundaries** - Only touch ~/openclaw configs
6. **Never commit secrets** - Use .env for sensitive values, gitignore them

## When to Read references/formats.md
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
3. **Use tools, not manual edits** - `jq`/`yq` for JSON/YAML
4. **Test after changes** - Load config in application context
5. **Respect workspace boundaries** - Only touch ~/openclaw configs
6. **Never commit secrets** - Use .env for sensitive values, gitignore them

## When to Read references/formats.md
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
3. **Use tools, not manual edits** - `jq`/`yq` for JSON/YAML
4. **Test after changes** - Load config in application context
5. **Respect workspace boundaries** - Only touch ~/openclaw configs
6. **Never commit secrets** - Use .env for sensitive values, gitignore them

## When to Read references/formats.md
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
3. **Use tools, not manual edits** - `jq`/`yq` for JSON/YAML
4. **Test after changes** - Load config in application context
5. **Respect workspace boundaries** - Only touch ~/openclaw configs
6. **Never commit secrets** - Use .env for sensitive values, gitignore them

## When to Read references/formats.md
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
3. **Use tools, not manual edits** - `jq`/`yq` for JSON/YAML
4. **Test after changes** - Load config in application context
5. **Respect workspace boundaries** - Only touch ~/openclaw configs
6. **Never commit secrets** - Use .env for sensitive values, gitignore them

## When to Read references/formats.md
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
3. **Use tools, not manual edits** - `jq`/`yq` for JSON/YAML
4. **Test after changes** - Load config in application context
5. **Respect workspace boundaries** - Only touch ~/openclaw configs
6. **Never commit secrets** - Use .env for sensitive values, gitignore them

## When to Read references/formats.md
Confidence
60% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
### Tools
```bash
# Install jq (if not present)
sudo dnf install jq    # Fedora
sudo apt install jq    # Debian/Ubuntu
brew install jq        # macOS
Confidence
70% confidence
Finding
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
### Tools
```bash
# Install jq (if not present)
sudo dnf install jq    # Fedora
sudo apt install jq    # Debian/Ubuntu
brew install jq        # macOS
Confidence
70% confidence
Finding
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
# Install yq
wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O yq
chmod +x yq
sudo mv yq /usr/local/bin/

# Or via pip
pip install yq
Confidence
70% confidence
Finding
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Static analysis

No suspicious patterns detected.