T06 · System Persistence
- Location
SKILL.md:67- Finding
Recurring Cron Persistence Overwrites the Existing User Crontab
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This backup skill appears purpose-aligned, but it handles highly sensitive agent data with unsafe defaults, email delivery, and risky scheduling guidance.
Review carefully before installing. Use local-only delivery unless email is truly required, disable secrets and memory backup by default, avoid the provided crontab command, and do not run it with broad workspace paths until temporary-file handling, password handling, and confirmation safeguards are improved.
SKILL.md:67Recurring Cron Persistence Overwrites the Existing User Crontab
scripts/backup.sh:20Sensitive Backup Data Uses Predictable Shared Temporary Paths
scripts/backup.sh:86Archive Encryption Password Is Exposed Through Process Arguments
The declared description presents this skill as a backup creation and management tool with encryption and delivery features. The supplied code does not back up, copy, compress, encrypt, transmit, or schedule anything. It only loads configuration values and writes a RESTORE.md file containing human-readable restoration instructions. While the generated document references backups and cron re-enablement, those are just text output, not implemented behavior. This is a materially different primary purpose from the declared backup/encryption/delivery functionality.
The skill description advertises backup of secrets, identity files, and memory with email delivery, but it does not prominently warn that highly sensitive data may be archived and transmitted off-host. Users may invoke it without understanding the sensitivity or the exfiltration implications, increasing the risk of unintended disclosure.
The skill is explicitly designed to access a password file and optionally bundle the secrets directory into backups. In context, this is credential handling rather than accidental mention, but it is still dangerous because it centralizes and processes authentication material alongside a workflow that can email archives off-host.
{
"password_file": "/home/jan/.openclaw/secrets/backup-password.txt",
"password_field": "Password",
"delivery": "email",
"email": {
The skill describes operations that require access to environment variables and writing files, but it declares no explicit tool scope or permission boundaries. In a backup skill that handles secrets, missing capability scoping increases the chance of overbroad execution or silent access to sensitive data without clear user understanding.
The skill promotes automated backup of personality, memory, config, and workspace data, which creates durable copies of agent state and identity information. This persistence expands the attack surface by preserving sensitive context longer than necessary and making it easier to restore, clone, or inspect the agent's prior state.
---
name: personality-backup
description: Create encrypted backups of agent personality files, memory, config, secrets, and projects. Use when the agent needs to set up, run, or manage automated backups of its workspace and identity files. Supports configurable backup targets, AES-256 encryption via 7-zip, and delivery via email (SMTP) or local storage.
---
# Personality Backup
The invocation text is broad enough that the skill could be triggered in many contexts involving workspace or identity management, even when backup of secrets was not specifically requested. Because the skill targets memory, config, secrets, and projects, accidental activation could lead to unnecessary collection, archival, or transmission of highly sensitive data.
The cron example sets up unattended recurring backups of sensitive data without warning about persistence, rotation, destination trust, or repeated transmission of secrets. Automating this process can normalize continuous collection and delivery of confidential material, magnifying damage from misconfiguration or account compromise.
This script explicitly collects highly sensitive material including secrets, memory, config, and projects, packages it, and can deliver it via email or local storage. Even though encryption is used, there is no explicit consent, interactive warning, destination validation, or minimization control at the point of execution, so a misconfigured or socially engineered run can silently exfiltrate an agent's identity and credentials.
This script automatically emails a backup archive containing highly sensitive material described by the skill as personality files, memory, config, secrets, and projects, yet it provides no user-facing warning, confirmation, or explicit disclosure at the point of transmission. In this skill context, silent exfiltration via SMTP is especially dangerous because the archive leaves the local trust boundary and may be sent to a misconfigured, attacker-controlled, or unintended recipient without the operator realizing it.
The script reads backup and SMTP credentials from files or environment variables and then prints them as shell variable assignments, exposing secrets to any caller, wrapper script, logs, process captures, or debugging output that consumes stdout. In the context of a backup skill that explicitly handles personality data, memory, config, and secrets, propagating credentials through plaintext shell output materially increases the chance of credential leakage and downstream compromise of backup stores or email infrastructure.
This code performs a file write to a user-supplied output path, which can overwrite existing content, but it provides no confirmation prompt, warning comment, or user-facing disclosure beyond a generic success message. For code files, file writes should have some visible disclosure unless the action is clearly explained as part of the skill behavior.