T09 · Insecure Skill Coding Practices
- Location
backup-restore.py:16- Finding
Unencrypted Storage of Potentially Sensitive Backup Data
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This backup skill is review-worthy because it creates local backups but overstates restore, scheduling, and coverage, including a restore command that reports success without restoring anything.
Treat this skill as unfinished. Do not rely on it for disaster recovery or migration unless you first fix and test restore behavior, source-path selection, backup completeness, encryption or storage protections, and command-line parsing. If installed as-is, use it only for non-critical manual experiments and protect any ZIP files it creates as sensitive data.
backup-restore.py:16Unencrypted Storage of Potentially Sensitive Backup Data
backup-restore.py:70Restore Operation Reports Success Without Restoring Data
backup-restore.py:81Backup Verification Does Not Establish Authenticity or Completeness
backup-restore.py:16Hard-Coded User Path and Incomplete Backup Scope Can Cause Silent Data Omission
The skill advertises backup, automatic scheduling, and one-click restore coverage that is broader than what the available description indicates is actually implemented. In a backup/restore context, this is dangerous because operators may rely on incomplete backups or assume restoration capability exists during an incident, leading to data loss or failed recovery when it matters most.
The restore function explicitly claims to perform a restore, but it only checks whether the backup file exists and then prints success without extracting or reinstating any data. In a recovery scenario, this deception is especially dangerous because it can lead users to believe restoration succeeded while systems remain unrecovered, potentially worsening downtime and data loss.
Documenting restore commands without prominent warnings about overwrite/destructive behavior can cause users to replace existing configuration, workspace, or agent state unintentionally. Because this skill targets system backup and restore, the context increases risk: users are likely to run these commands during emergencies and may not realize they need confirmation, dry-run support, or isolation before restoring.
The file contains user-facing natural-language strings such as the title, status messages, and usage instructions exclusively in Chinese. Under the policy rule, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified.
The skill description promises backup coverage for skills and one-click restore, but the implementation only archives a few config/workspace paths and does not include skills or any working restore logic. This mismatch can create a false sense of recoverability, causing operators to rely on backups that will not restore the expected assets after data loss or corruption.
The natural-language description forces a specific language/locale for core skill instructions and labels, and the file does not indicate that Chinese is optional or required for a region-specific purpose. Per the policy, language constraints should offer user choice or be explicitly justified.
No suspicious patterns detected.