T09 · Insecure Skill Coding Practices
- Location
scripts/archiver.py:139- Finding
Predictable Temporary File Allows Symlink-Based File Overwrite
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a local chat-log archiver, but it overstates its sensitive-data protections and can export or persist chat contents without the promised confirmation.
Review before installing. Use this only on session logs you are comfortable archiving, and avoid pointing it at broad directories or logs that may contain passwords, API keys, personal data, private URLs, or security details. Treat generated Markdown or JSON as sensitive until manually reviewed, and avoid writing archives into synced, shared, or version-controlled folders. The /tmp fallback should be removed or gated before production use.
scripts/archiver.py:139Predictable Temporary File Allows Symlink-Based File Overwrite
scripts/archiver.py:154Sensitive Session Content Is Exported Without the Documented Confirmation Gate
The skill describes operations that read session logs and write structured exports, but it does not declare any explicit tool scope such as allowed-tools or permissions. That mismatch can lead to overbroad or implicit filesystem access, making it easier for an agent runtime to read unintended files or write extracted sensitive content to unsafe locations. The skill context increases risk because it processes chat logs, which commonly contain secrets, personal data, internal links, and other sensitive material.
The core purpose of this skill is to retain, classify, summarize, and re-export user chat content, including direct line excerpts and topic tags. In the context of a chat-memory archiver, that makes data exposure risk more significant rather than less, because the tool is specifically optimized to preserve and reproduce potentially sensitive conversational material across sessions.
The script reads arbitrary session logs and extracts/summarizes their contents, then later emits that derived content to stdout or files without any consent prompt, sensitivity warning, or redaction step. Because chat logs commonly contain credentials, personal data, internal URLs, or security discussions, this creates a real privacy and data-handling risk even though it is not an exploit primitive like code execution.
The tool persists extracted session summaries and category snippets to disk when --outdir is used, but it does not warn that potentially sensitive chat-derived content will be stored. This is dangerous because it turns ephemeral chat content into a durable artifact that may be indexed, backed up, shared, or committed to source control unintentionally.
When no session files are found, the program silently writes a sample log to /tmp, creating an unexpected filesystem side effect. Although the content is fixed test data rather than user secrets, writing to a shared temporary location without disclosure can violate least surprise and may expose artifacts to other local users depending on system configuration.
No suspicious patterns detected.