T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/cli.js:87- Finding
Immediate backup command silently forces a full backup of sensitive OpenClaw data
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This backup skill is not clearly malicious, but it needs Review because it can back up more data than users may expect and mishandles some sensitive backup settings.
Install only if you are comfortable reviewing and tightening the configuration first: avoid full backups unless intended, enable sensitive-file exclusions and encryption, keep backups in a private dedicated directory, do not store Telegram tokens in copied prompts, and do not pass custom backup targets containing paths like .. or absolute paths.
scripts/cli.js:87Immediate backup command silently forces a full backup of sensitive OpenClaw data
scripts/backup.js:148Traversal-capable backup targets permit reads outside the OpenClaw directory
scripts/cleaner.js:84Retention cleanup can delete unrelated ZIP archives from configurable directories
scripts/cli.js:1122ZIP encryption passwords are weakly generated, echoed, and stored in plaintext
The same section documents that secret-bearing files such as secrets.json are not forcibly excluded from backups. Given this skill's purpose is automated archival of user data, retaining secrets by default expands the blast radius of any compromise of backup storage or transfer channels.
- **密钥文件**:*.key, *.pem, *.p12, *.pfx
- **环境变量**:.env, .env.local, .env.*.local
- **凭证文件**:credentials.json, secrets.json
- **Token文件**:*.token, *.secret, *_token.json
- **SSH密钥**:id_rsa, id_dsa, *.ppk
The same section documents that secret-bearing files such as secrets.json are not forcibly excluded from backups. Given this skill's purpose is automated archival of user data, retaining secrets by default expands the blast radius of any compromise of backup storage or transfer channels.
- **密钥文件**:*.key, *.pem, *.p12, *.pfx
- **环境变量**:.env, .env.local, .env.*.local
- **凭证文件**:credentials.json, secrets.json
- **Token文件**:*.token, *.secret, *_token.json
- **SSH密钥**:id_rsa, id_dsa, *.ppk
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
{ "backup": { "exclude": ["logs", "cache", ".key", ".ssh"], "excludePatterns": [".pem", ".env", "credentials.json"] } }
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
{ "backup": { "exclude": ["logs", "cache", ".key", ".ssh"], "excludePatterns": [".pem", ".env", "credentials.json"] } }
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
{ "backup": { "exclude": ["logs", "cache", ".key", ".ssh"], "excludePatterns": [".pem", ".env", "credentials.json"] } }
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
{
"backup": {
"exclude": ["logs", "cache", "*.key", ".ssh"],
"excludePatterns": ["*.pem", ".env", "credentials.json"]
}
}
```
The template instructs use of curl to call Telegram's external API directly from a backup workflow, introducing network egress and secret-handling behavior unrelated to core backup creation. Direct shell-based API calls also increase the chance of token leakage in process lists, logs, copied configs, or prompt history while sending operational details off-host.
The lockfile includes brace-expansion 1.1.13, which is flagged for denial-of-service issues involving pathological brace patterns that can trigger excessive CPU or memory consumption. In this file it is a transitive dependency under minimatch/glob, so exploitation would depend on the application passing attacker-controlled glob or brace patterns into that dependency chain, but the presence of the vulnerable package is real and should be treated as a supply-chain risk.
The lockfile also includes brace-expansion 2.0.3, which is likewise reported as vulnerable to resource-exhaustion DoS from crafted expansion input. Because this package is used transitively by readdir-glob/minimatch, risk is greatest if backup include/exclude selections or file-matching expressions can be influenced by users or untrusted configuration, potentially letting an attacker crash or stall backup jobs.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
*.pem # PEM证书文件
*.p12 # PKCS#12证书
*.pfx # PFX证书
.env # 环境变量文件
.env.local # 本地环境变量
.env.*.local # 环境变量文件变体
credentials.json # 凭证文件
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
*.p12 # PKCS#12证书
*.pfx # PFX证书
.env # 环境变量文件
.env.local # 本地环境变量
.env.*.local # 环境变量文件变体
credentials.json # 凭证文件
secrets.json # 密钥文件
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"excludePatterns": [
"*.log", "*.tmp", ".DS_Store", "Thumbs.db",
"*.key", "*.pem", "*.p12", "*.pfx",
".env", ".env.local", "credentials.json", "secrets.json"
],
"exclude": ["logs", "cache", "tmp", "node_modules", ".ssh", ".gnupg"]
}
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"excludePatterns": [
"*.log", "*.tmp", ".DS_Store", "Thumbs.db",
"*.key", "*.pem", "*.p12", "*.pfx",
".env", ".env.local", "credentials.json", "secrets.json"
],
"exclude": ["logs", "cache", "tmp", "node_modules", ".ssh", ".gnupg"]
}
The configuration display path prints the full JSON config verbatim, and later flows also include plaintext password material. Since this skill manages backup settings and encryption secrets, dumping the full config can expose stored passwords, notification targets, paths, and other sensitive data to chat transcripts, logs, or unauthorized viewers.
Displaying the randomly generated backup password directly in normal CLI/chat output exposes the very secret intended to protect the archive. In this skill context, where outputs may be retained or relayed, plaintext disclosure materially increases the chance of credential compromise and backup disclosure.
Echoing a user-entered encryption password back verbatim leaks the secret into the output channel and any associated logging or transcript systems. This undermines confidentiality of encrypted backups and can expose sensitive archived user data if the archive is later accessed by an attacker with the leaked password.
The code identifies .env.local as sensitive but does not exclude it unless the user manually enables the feature. Because this skill performs automated backups, local environment files may be silently archived on a schedule, increasing the chance of credential leakage through stored ZIPs or downstream handling.
// 敏感文件排除建议列表(默认不启用,仅建议)
sensitiveExcludeSuggestion: [
"*.key", "*.pem", "*.p12", "*.pfx",
".env", ".env.local", ".env.*.local",
"credentials.json", "secrets.json",
"*.token", "*.secret",
"*_key.json", "*_token.json",
The code identifies .env.local as sensitive but does not exclude it unless the user manually enables the feature. Because this skill performs automated backups, local environment files may be silently archived on a schedule, increasing the chance of credential leakage through stored ZIPs or downstream handling.
// 敏感文件排除建议列表(默认不启用,仅建议)
sensitiveExcludeSuggestion: [
"*.key", "*.pem", "*.p12", "*.pfx",
".env", ".env.local", ".env.*.local",
"credentials.json", "secrets.json",
"*.token", "*.secret",
"*_key.json", "*_token.json",
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
sensitiveExcludeSuggestion: [
"*.key", "*.pem", "*.p12", "*.pfx",
".env", ".env.local", ".env.*.local",
"credentials.json", "secrets.json",
"*.token", "*.secret",
"*_key.json", "*_token.json",
"id_rsa", "id_dsa", "*.ppk"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
sensitiveExcludeSuggestion: [
"*.key", "*.pem", "*.p12", "*.pfx",
".env", ".env.local", ".env.*.local",
"credentials.json", "secrets.json",
"*.token", "*.secret",
"*_key.json", "*_token.json",
"id_rsa", "id_dsa", "*.ppk"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
sensitiveExcludeSuggestion: [
"*.key", "*.pem", "*.p12", "*.pfx",
".env", ".env.local", ".env.*.local",
"credentials.json", "secrets.json",
"*.token", "*.secret",
"*_key.json", "*_token.json",
"id_rsa", "id_dsa", "*.ppk"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
sensitiveExcludeSuggestion: [
"*.key", "*.pem", "*.p12", "*.pfx",
".env", ".env.local", ".env.*.local",
"credentials.json", "secrets.json",
"*.token", "*.secret",
"*_key.json", "*_token.json",
"id_rsa", "id_dsa", "*.ppk"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
sensitiveExcludeSuggestion: [
"*.key", "*.pem", "*.p12", "*.pfx",
".env", ".env.local", ".env.*.local",
"credentials.json", "secrets.json",
"*.token", "*.secret",
"*_key.json", "*_token.json",
"id_rsa", "id_dsa", "*.ppk"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
sensitiveExcludeSuggestion: [
"*.key", "*.pem", "*.p12", "*.pfx",
".env", ".env.local", ".env.*.local",
"credentials.json", "secrets.json",
"*.token", "*.secret",
"*_key.json", "*_token.json",
"id_rsa", "id_dsa", "*.ppk"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
sensitiveExcludeSuggestion: [
"*.key", "*.pem", "*.p12", "*.pfx",
".env", ".env.local", ".env.*.local",
"credentials.json", "secrets.json",
"*.token", "*.secret",
"*_key.json", "*_token.json",
"id_rsa", "id_dsa", "*.ppk"