Back to skill

Security audit

Credential Manager

Security checks across malware telemetry and agentic risk

Overview

This skill has a legitimate security purpose, but it asks for broad access to sensitive credentials and can persist, copy, modify, and delete secret-bearing files with under-scoped safeguards.

Install only if you intentionally want this skill to inspect and migrate credential files. Run scan-only first, review every path, avoid --yes for real migrations, verify ~/.openclaw/.env and backups before cleanup, do not consolidate wallet seed phrases or private keys unless you have a strong reason, and avoid sourcing or printing secrets in shell sessions.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (18)

Lp3

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding
The skill documentation clearly describes capabilities to read credential files, write consolidated secrets, modify .gitignore, and invoke shell scripts, but it does not declare any explicit permission model or scope boundaries. That mismatch increases the risk of over-broad execution and makes it harder for users or a platform to enforce least privilege around sensitive filesystem and shell access.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The example explicitly sources the root .env and then prints a credential with `echo`, which encourages secret disclosure to terminal history, logs, CI output, screen recordings, or shell wrappers. In a credential-management skill, demonstrating direct secret output is especially risky because users are likely to copy the pattern into real operational scripts.

Natural-Language Policy Violations

Medium
Confidence
87% confidence
Finding
The document imposes an absolute, one-size-fits-all credential policy with 'no exceptions,' including rejecting shell environment variables, despite legitimate deployment contexts like CI/CD, containers, and managed secret stores that require different handling. In a security foundation document, this rigidity can push users toward insecure workarounds, reduce compatibility with safer platform-native secret mechanisms, and create operational failures that lead to weaker real-world security.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The README explicitly says the skill cleans up scattered credential files after migration, but it does not prominently warn users to verify backups and the new consolidated file before deletion. Because the skill operates on secret-bearing files, unclear deletion safeguards can cause accidental credential loss or break applications if migration is incomplete.

Natural-Language Policy Violations

Medium
Confidence
85% confidence
Finding
The skill mandates a single credential storage policy and explicitly says users are 'forced to fix it,' which removes operator choice and can trigger denial-of-service behavior for dependent skills if the policy is not met. Even when the goal is security, hard enforcement without a documented opt-in, exception path, or policy authority can create unsafe operational pressure and brittle workflows.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
# Interactive mode (prompts before changes)
./scripts/consolidate.py

# Auto-confirm (no prompts)
./scripts/consolidate.py --yes

# Backup only
Confidence
81% confidence
Finding
Auto-confirm

Credential Access

High
Category
Privilege Escalation
Content
The skill automatically detects credentials by scanning for:

**File Patterns:**
- `credentials.json` files in config directories
- `.env` files
- Memory files with `-creds` or `credentials` in the name
Confidence
95% confidence
Finding
credentials.json

Credential Access

High
Category
Privilege Escalation
Content
---
name: credential-manager
description: MANDATORY security foundation for OpenClaw. Consolidate scattered API keys and credentials into a secure .env file with proper permissions. Use when setting up OpenClaw, migrating credentials, auditing security, or enforcing the .env standard. This is not optional — centralized credential management is a core requirement for secure OpenClaw deployments. Scans for credential files across common locations, backs up existing files, creates a unified .env with mode 600, validates security, and enforces best practices.
---

# Credential Manager
Confidence
92% confidence
Finding
.env

Credential Access

High
Category
Privilege Escalation
Content
---
name: credential-manager
description: MANDATORY security foundation for OpenClaw. Consolidate scattered API keys and credentials into a secure .env file with proper permissions. Use when setting up OpenClaw, migrating credentials, auditing security, or enforcing the .env standard. This is not optional — centralized credential management is a core requirement for secure OpenClaw deployments. Scans for credential files across common locations, backs up existing files, creates a unified .env with mode 600, validates security, and enforces best practices.
---

# Credential Manager
Confidence
92% confidence
Finding
.env

Credential Access

High
Category
Privilege Escalation
Content
---
name: credential-manager
description: MANDATORY security foundation for OpenClaw. Consolidate scattered API keys and credentials into a secure .env file with proper permissions. Use when setting up OpenClaw, migrating credentials, auditing security, or enforcing the .env standard. This is not optional — centralized credential management is a core requirement for secure OpenClaw deployments. Scans for credential files across common locations, backs up existing files, creates a unified .env with mode 600, validates security, and enforces best practices.
---

# Credential Manager
Confidence
92% confidence
Finding
.env

Credential Access

High
Category
Privilege Escalation
Content
# Add credential-manager scripts to path
sys.path.insert(0, str(Path.home() / '.openclaw/skills/credential-manager/scripts'))

# Enforce secure .env (exits if not compliant)
from enforce import require_secure_env, get_credential

require_secure_env()
Confidence
88% confidence
Finding
.env

Credential Access

High
Category
Privilege Escalation
Content
#!/usr/bin/env bash
set -euo pipefail

# Validate .env exists and is secure
if ! python3 ~/.openclaw/skills/credential-manager/scripts/enforce.py; then
    exit 1
fi
Confidence
90% confidence
Finding
.env

Credential Access

High
Category
Privilege Escalation
Content
import os
from pathlib import Path

# Load .env
env_file = Path.home() / '.openclaw' / '.env'
with open(env_file) as f:
    for line in f:
Confidence
93% confidence
Finding
.env

Credential Access

High
Category
Privilege Escalation
Content
from pathlib import Path

# Load .env
env_file = Path.home() / '.openclaw' / '.env'
with open(env_file) as f:
    for line in f:
        if '=' in line and not line.strip().startswith('#'):
Confidence
93% confidence
Finding
.env'

Credential Access

High
Category
Privilege Escalation
Content
- Memory files with `-creds` or `credentials` in the name

**Sensitive Key Patterns:**
- API keys, access tokens, bearer tokens
- Secrets, passwords, passphrases
- OAuth consumer keys
- Private keys, signing keys, wallet keys
Confidence
94% confidence
Finding
access tokens

Credential Access

High
Category
Privilege Escalation
Content
print(f"\n📋 Found {len(results)} credential file(s) to migrate\n")
    
    # Backup existing .env
    if env_file.exists():
        backup_files([env_file], backup_dir)
Confidence
86% confidence
Finding
.env

Credential Access

High
Category
Privilege Escalation
Content
print(f"\n✅ Backup complete: {backup_dir}")
        return {'status': 'backup_only', 'backup_dir': str(backup_dir)}
    
    # Write .env
    print(f"\n✍️  Writing .env...")
    openclaw_dir.mkdir(parents=True, exist_ok=True)
Confidence
90% confidence
Finding
.env

Session Persistence

Medium
Category
Rogue Agent
Content
## For Skill Developers

**DO NOT create .env files in your skill directories.**

Load credentials from root:
Confidence
91% confidence
Finding
create .env files in your skill directories.** Load credentials from root: ```bash #!/bin/bash # Load from root .env source ~/.openclaw

VirusTotal

64/64 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.