T09 · Insecure Skill Coding Practices
- Location
SKILL.md:210- Finding
Recursive World-Readable Permissions Expose Persistent Memory
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a disclosed local agent-memory skill, but it has review-worthy safety issues around persistent user data, insecure permission guidance, and insufficient path containment in its bootstrap script.
Install only if you are comfortable with a skill creating long-term local memory about your preferences and work context. Keep ~/agent-memory private with owner-only permissions, avoid storing secrets or sensitive personal data, and do not use untrusted agent names or --force with the bootstrap script until path validation is fixed.
SKILL.md:210Recursive World-Readable Permissions Expose Persistent Memory
scripts/bootstrap.py:70Unsanitized Agent Names Permit Path Traversal and Arbitrary Markdown File Overwrite
The supplied code only initializes filesystem structure and template files: hot.md, corrections.log, index.md, and directories such as projects, domains, agents, and archive. It optionally creates per-agent markdown files. While this scaffolding is related to a memory system, the description substantially overstates the implemented behavior. There is no code for detecting corrections, storing or retrieving memories during agent runtime, decay/compaction logic, reflection, knowledge sharing between agents, stats reporting, or handling natural-language triggers like 'remember this' or 'forget X'. The printed messages mention features like auto-detected corrections and memory stats, but those capabilities are not actually implemented in this code chunk. Therefore the description does not accurately represent what the code actually does.
The skill clearly directs persistent file creation and modification (~/agent-memory/*, bootstrap script, logging corrections), but it does not declare any explicit tool scope or permissions boundary. That creates a mismatch between advertised capability and effective behavior, which can lead to unauthorized or unexpected disk writes if an agent auto-enables the skill.
The activation conditions are very broad, including common phrases like "remember this," "what do you know about me," and memory-related questions. In an agent ecosystem, that can cause the skill to trigger in ordinary conversation and begin storing or surfacing persistent user data outside a narrowly consented setup flow.
The skill instructs creation of long-lived local memory files and presents memory as "active" without a clear up-front warning that user data will be written to disk and retained over time. This is dangerous because users may disclose sensitive preferences, project details, or personal information believing it is ephemeral, while the skill persists it locally and even supports export and multi-agent sharing.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
| Financial | Card numbers, bank accounts | Fraud |
| Medical | Diagnoses, medications | Privacy (HIPAA) |
| Biometric | Voice prints, behavior fingerprints | Identity theft |
| Third-party | Other people's info without consent | Privacy violation |
| Location | Home/work addresses, daily routines | Physical safety |
| Access | System permissions, admin credentials | Privilege escalation |
The script prints that 'Memory is now active' and that 'corrections are auto-detected', but the code only creates directories and template files. This is a deceptive capability claim that can cause operators to rely on persistence or learning behavior that does not actually exist, leading to unsafe assumptions about what data is remembered or processed.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
print(" 3. For multi-agent setup, create agents/*.md files")
print()
# Optional: create agent files if names provided
agent_args = [a for a in sys.argv[1:] if not a.startswith("--") and a != str(root)]
if "--agents" in sys.argv:
idx = sys.argv.index("--agents")
The manifest presents broad functional capabilities including tiered storage, auto-learning from corrections, self-reflection, multi-agent sharing, and intelligent decay. In this file, the implemented behavior is only bootstrapping a local directory structure and writing template markdown files, which is materially narrower than the claimed functionality.
No suspicious patterns detected.