T09 · Insecure Skill Coding Practices
- Location
SKILL.md:110- Finding
Encryption Passphrases Exposed Through Command-Line Arguments
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a file encryption helper, but its examples expose passphrases in command lines and recommend deleting originals without strong safeguards.
Review before installing. Use this only for explicit local encryption/decryption tasks, avoid putting real passphrases directly in command text, and do not allow automatic deletion of originals unless you have verified decryption and have a backup. Treat the broad security/compliance trigger wording as out of scope for this skill.
SKILL.md:110Encryption Passphrases Exposed Through Command-Line Arguments
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# 加密文件
safe encrypt \
--input secrets.txt \
--output secrets.txt.encrypted \
--passphrase "your-strong-passphrase"
# ...
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# 加密文件
safe encrypt \
--input secrets.txt \
--output secrets.txt.encrypted \
--passphrase "your-strong-passphrase"
# ...
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# 加密文件
safe encrypt \
--input secrets.txt \
--output secrets.txt.encrypted \
--passphrase "your-strong-passphrase"
# ...
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# 加密文件
safe encrypt \
--input secrets.txt \
--output secrets.txt.encrypted \
--passphrase "your-strong-passphrase"
# ...
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# 加密文件
safe encrypt \
--input secrets.txt \
--output secrets.txt.encrypted \
--passphrase "your-strong-passphrase"
# ...
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# 加密文件
safe encrypt \
--input secrets.txt \
--output secrets.txt.encrypted \
--passphrase "your-strong-passphrase"
# ...
The trigger condition includes unrelated uses such as security detection, compliance audit, and vulnerability scanning, even though the skill only performs file encryption/decryption. Overbroad invocation criteria can cause an agent to route unrelated sensitive tasks into a skill that has exec/write capabilities, increasing the risk of unintended command execution or file modification.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# 创建测试文件
echo "这是敏感数据" > secret.txt
# ...
# 加密
safe encrypt \
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# 创建测试文件
echo "这是敏感数据" > secret.txt
# ...
# 加密
safe encrypt \
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# 创建测试文件
echo "这是敏感数据" > secret.txt
# ...
# 加密
safe encrypt \
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# 创建测试文件
echo "这是敏感数据" > secret.txt
# ...
# 加密
safe encrypt \
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# 创建测试文件
echo "这是敏感数据" > secret.txt
# ...
# 加密
safe encrypt \
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# 创建测试文件
echo "这是敏感数据" > secret.txt
# ...
# 加密
safe encrypt \
The documentation advises secure deletion of the original file immediately after encryption, but does not prominently warn that deletion is irreversible and that encryption/decryption should be verified first. In an agent-executed context, users may lose their only readable copy if the password is mistyped, the output is corrupted, or the operation fails silently.
The best-practices section recommends deleting originals but does not pair that advice with a strong warning about irreversible data loss or require confirmation steps. This is risky because the skill is designed for automation and may encourage destructive post-processing without ensuring recovery is possible.
The skill states that no API key is needed, but also declares an LLM API as a required dependency. This inconsistency can mislead operators about trust boundaries, secret requirements, and where user data may be sent, increasing the chance of unintended external data exposure or insecure deployment assumptions.
No suspicious patterns detected.