T09 · Insecure Skill Coding Practices
- Location
SKILL.md:623- Finding
Unrestricted API base URL can redirect credentials and sensitive business data
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent WorkoPilot integration guide, but it gives agents broad credential and configuration handling instructions that users should review before installing.
Install only if you are comfortable with an agent helping configure WorkoPilot credentials and resources. Prefer a dedicated .env.workopilot file or a secret manager, avoid command-line API keys, verify the resolved WorkoPilot host before authenticated requests, and do not let the agent modify unrelated project config files without explicit confirmation.
SKILL.md:623Unrestricted API base URL can redirect credentials and sensitive business data
SKILL.md:706API keys can be exposed through command-line arguments
The trigger description is extremely broad, including short generic phrases like '创建 AI 服务', '测试接口', and '对接流程', plus an instruction to trigger even on brief mentions. That can cause the skill to activate during unrelated development conversations, leading the agent to prematurely steer users into WorkoPilot-specific workflows, including credential setup and configuration actions they did not intend.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
### 4. 调用脚本创建
运行对应的 Python 脚本。脚本会:
- 自动从环境变量或 .env 文件读取鉴权配置
- **自动查询可用模型并根据场景智能选择**
- 检查资源是否已存在(根据 code 查询)
- 如果存在则复用,不存在则创建
该技能的名称、描述与全文指令均以中文表述,并围绕中文模型优先级和中文文档场景展开,但没有说明应根据用户偏好切换输出语言。对于多语言用户环境,这会形成默认强制中文响应的策略倾向,缺少语言选择或 opt-in 机制。
The skill explicitly tells the agent to inspect current-project configuration locations such as .env, appsettings.json, and generic config files and place API keys there. That expands credential handling beyond the dedicated WorkoPilot env file and can cause the agent to read or modify unrelated application configs, increasing the chance of secret exposure, accidental overwrites, or cross-system credential misuse.
The instruction to search the project for existing config files and place API keys there semantically directs the agent to discover and handle sensitive credentials in arbitrary local files. In an agent setting, this is dangerous because it broadens access to secrets beyond the minimum needed, can lead to reading unrelated confidential data, and normalizes modifying high-risk files without tight scope control.
L706-L710 shows an example using --api-key your_api_key_here, while L771-L773 emphasizes avoiding unsafe API key handling and recommends safer storage practices. Command-line secrets are often exposed through shell history and process inspection, so the guidance conflicts with the stated security intent of protecting API keys.