T09 · Insecure Skill Coding Practices
- Location
SKILL.md:259- Finding
Health Records and Backups Stored Without Explicit Access Controls or Encryption
- Content
View full analysis
~/.health/config.json ``` ```python Path("~/.health/weight/latest.json").expanduser().write_text( json.dumps(record, ensure_ascii=False, indent=2) ) ``` ```yaml # ~/.health/config.yaml profile: name: 你的名字 age: 30 gender: male height_cm: 175 weight_kg: 70 activity_level: moderate ``` ```bash tar -czf health-backup-$(date +%Y%m%d).tar.gz ~/.health/ ``` ### Technical Analysis The Skill instructs the Agent to store identity, health, diet, sleep, exercise, weight, and medical-report information as plaintext JSON or YAML under `~/.health`. It does not explicitly set restrictive permissions on the directory or generated files. Consequently, their effective permissions depend on the user's environment and `umask`. The recommended backup command creates a compressed TAR archive but does not encrypt it. It also writes the archive into the current working directory, which could be a shared, synchronized, backed-up, or otherwise broadly accessible location. Compression does not provide confidentiality. The statement that local storage is completely under user control does not address access by other local principals, malware operating in the user's context, automated synchronization services, or accidental sharing of backup archives. ### Attack Path 1. A user or Agent follows the Skill instructions and records personal or medical information in `~/.health`. 2. The files receive permissions determined by the existing environment because the Skill does not enforce restrictive modes. 3. The user creates an unencrypted archive using the documented backup command. 4. The health directory or archive becomes accessi ...[truncated 1071 chars]- Remediation
View remediation
