T09 · Insecure Skill Coding Practices
- Location
config/email-config.json:11- Finding
Plaintext Storage of Email Credentials in a Project-Local Configuration File
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This email skill does what it claims, but it asks users to store mailbox credentials in a local plaintext config and can read, send, reply, forward, and mark email without extra safeguards.
Review this skill before installing if you will connect a real mailbox. Use a revocable app-specific password, restrict file permissions on the config, avoid committing or sharing the configured directory, and require explicit confirmation before the agent sends, replies, forwards, reply-alls, marks messages, or attaches local files.
config/email-config.json:11Plaintext Storage of Email Credentials in a Project-Local Configuration File
The skill invokes a Python email client that reads local configuration files and connects to IMAP/SMTP servers, but the manifest does not declare any tool scope or permissions. This creates a dangerous mismatch between the skill's documented interface and its actual capabilities, reducing reviewability and increasing the chance of unintended mailbox access, credential use, or network exfiltration.
The trigger phrases are broad and action-oriented, covering sensitive operations like reading, searching, replying to, forwarding, and sending email. Ambiguous activation raises the risk that ordinary conversation could unintentionally trigger mailbox access or outbound email actions without sufficiently clear user intent.
The skill description and usage guidance do not prominently warn users that the skill reads mailbox contents, sends email, and requires storage of mailbox credentials in a local configuration file. In a mail-management context, this omission is especially risky because it can expose sensitive communications and secrets while users may not appreciate the scope of access being granted.
User-facing natural-language strings throughout the script, including the module description, error messages, and CLI help, are exclusively in Chinese. There is no indication that the tool is region-specific or that users may opt into another language, which can violate language/locale policy requirements.
This code performs SMTP transmission of email bodies, recipient lists, and optional attachments via send, reply, and forward commands. Although these actions are core functionality, the file lacks any explicit user disclosure such as a confirmation prompt, warning comment/docstring, or user-facing notice that content and attachments will be sent over the network and, for forward, redistributed to new recipients.
No suspicious patterns detected.