T09 · Insecure Skill Coding Practices
- Location
scripts/backup_openclaw.sh:6- Finding
Plaintext Sensitive Backups Are Written to an Unexpected Default Location
- Content
View full analysis
/dev/null || { echo "[✗] Failed to create archive" exit 1 } ``` The backup scope includes sensitive OpenClaw data documented in `SKILL.md:163-166` and `references/config-locations.md:14, 27-32`, including credentials, tokens, memory, user context, agent instructions, custom skills, and extensions. ### Technical Analysis The shell script stores the complete backup as an unencrypted gzip-compressed tar archive. Compression provides no confidentiality. The script also does not set a restrictive process umask or explicitly assign secure permissions to the backup directory, archive, and metadata file. Their permissions therefore depend on the caller's environment and the existing permissions of `/data00`. The shell implementation's default directory, `/data00/backups/openclaw`, also conflicts with `SKILL.md`, which states that the default is `$HOME/backups/openclaw`. A shared or centrally mounted `/data00` directory may have a broader access boundary than a user's home directory. The adjacent `.info` file additionally discloses the hostname, username, backup time, archive size, and source paths. ### Attack Path 1. A user invokes `backup_openclaw.sh` without supplying an output directory, following the documented quick-start workflow. 2. The script selects `/data00/backups/openclaw` rather than the documented user-specific location. 3. The script collects OpenClaw configuration, tokens, memory, agent state, extensions, and ...[truncated 1012 chars]- Remediation
View remediation
