T08 · Insecure Dependencies
- Location
SKILL.md:74- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill’s video-generation purpose is coherent, but it should be reviewed because it recommends persistent agent configuration changes, plaintext API-key storage, and unverified package/media downloads.
Install only after reviewing the setup commands. Prefer a virtual environment with pinned dependencies, verify or vendor the audio assets, avoid storing the TTS key in plaintext when possible, and if a file key is used, restrict it to owner-only permissions. Treat the Codex config edit as a global persistent change and make it manually only if you want skills enabled there.
SKILL.md:74Unpinned Third-Party Dependency Installation
SKILL.md:94TTS API Key Stored Persistently in a Plaintext File
SKILL.md:116External Media Downloaded from a Mutable Branch Without Integrity Verification
Referencing and appending to ~/.codex/config.toml targets a sensitive agent configuration location. Even though the intent appears to be setup guidance, access to this path is security-relevant because it can alter agent behavior globally and persist beyond this skill's runtime.
# 1. 开启 Skills 功能
cat >> ~/.codex/config.toml << 'EOF'
[features]
skills = true
EOF
Referencing and appending to ~/.codex/config.toml targets a sensitive agent configuration location. Even though the intent appears to be setup guidance, access to this path is security-relevant because it can alter agent behavior globally and persist beyond this skill's runtime.
# 1. 开启 Skills 功能
cat >> ~/.codex/config.toml << 'EOF'
[features]
skills = true
EOF
The trigger list includes “做读书视频”, which is a generic request that could overlap with many ordinary book-video tasks beyond this specific skill. The description does not provide exclusion conditions or tighter scope to distinguish when this skill should activate versus other reading/video-generation skills.
The markdown states that the default voice is a Chinese female voice and that the user does not need to specify it, while the rest of the skill is presented as cross-platform rather than clearly region- or language-limited. This imposes a language/locale choice by default without offering the user an explicit opt-in or language selection.
L131-L145 明确写的是“第三人称书评文案”且示例 JSON 的 content 字段也如此描述,但 L147-L150 又要求“全文使用第一人称,书自己是讲述者”。这不是单纯信息缺失,而是同一工作流说明内部对文案视角的直接矛盾,容易导致实现或调用时偏离预期。
L165 将 cap 描述为“字幕文案(一句话,第三人称)”,但 L175-L180 立刻插入了“你好,我是《{book_name}》...”的第一人称开场白,且整个技能在 L013、L021、L480-L491 均强调第一人称书籍自述。该注释/文档与预期产物视角相冲突,属于意图与说明不一致。