T09 · Insecure Skill Coding Practices
- Location
seedance2.0.ts:53- Finding
API Credentials Can Be Forwarded to an Untrusted Configurable Endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Seedance video skill is mostly coherent, but it handles an API key and network downloads in ways that deserve manual review before installation.
Install only if you trust the publisher and can keep ARK_BASE_URL fixed to the legitimate Volcengine endpoint. Use a limited-scope ARK_API_KEY, expect prompts/reference media URLs to be sent to the configured API service, and expect generated videos to be saved locally. Review or patch URL validation and download limits before running this in a sensitive network or shared environment.
seedance2.0.ts:53API Credentials Can Be Forwarded to an Untrusted Configurable Endpoint
seedance2.0.ts:178Unvalidated API-Provided Video URL Enables Server-Side Request Forgery and Resource Exhaustion
package.json:13Unpinned Dependency Installation Is Not Reproducible
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
复制环境变量模板:
cp .env.example .env
编辑 .env 文件,填入你的 ARK_API_KEY:
The declared behavior does not fully match the described capabilities: it advertises text/image generation support, omits that files may be downloaded locally, and apparently supports broader multimodal reference inputs than the description states. Description-behavior mismatch is dangerous because users may authorize or invoke the skill without understanding its actual data flows, local filesystem effects, or expanded input surface.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
// 加载环境变量
import dotenv from 'dotenv';
dotenv.config({ path: path.join(__dirname, '.env') });
// 默认提示词模板配置
export const PROMPT_TEMPLATES = {
The README content is entirely in Chinese and does not offer an alternative language or indicate that the skill is intentionally limited to Chinese-speaking users. This can violate a language/locale policy when the skill forces a specific language without user opt-in or justification.
The skill declares access to environment variables and networked API behavior but does not explicitly scope or disclose allowed tools/permissions. This weakens least-privilege controls and can cause users or hosting platforms to approve broader capabilities than they intended, especially because the skill reads API credentials and performs remote requests.
The file’s user-facing description and instructions are entirely in Chinese, which effectively forces a specific language without any opt-in or explanation. Under the stated policy, language constraints should either be user-selectable or clearly documented as region-specific and justified.
The skill states that it automatically downloads generated videos to the local machine but does not provide a user-facing warning or consent mechanism for filesystem side effects. Silent local writes are risky because they can consume storage, overwrite expected workflow boundaries, and create privacy or malware-triage concerns if users do not realize files are being persisted.
The activation phrase for video generation is broad and underspecified, which can cause the skill to trigger in contexts the user did not clearly intend. For a networked, credential-backed generation workflow that may also download files, ambiguous triggering increases the risk of unintended API calls, cost incurrence, and unexpected content generation.
This code's user-facing natural language is written exclusively in Chinese in the header comments and later CLI/help output, with no indication that users can opt into another language. The policy requires flagging language or locale constraints when the skill forces a specific language without user choice or a clearly justified region-specific scope.
The markdown explicitly states that generated videos are automatically downloaded to the local machine, which affects user storage and creates files on disk. The README does not include any warning or disclosure about where files are saved by default, possible overwrites, or local data impact.
The markdown instructs the skill to read ARK_API_KEY from environment variables, which involves sensitive credential handling. While configuration is documented, there is no explicit warning to users that the skill depends on a secret and may use it for external API calls.
The package description is written entirely in Chinese and does not indicate that the skill is Chinese-only, region-specific, or that users can choose another language. Under the policy, forcing a specific language without opt-in can be a natural-language policy issue.
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"author": "Zoe",
"license": "MIT",
"dependencies": {
"dotenv": "^16.4.5"
},
"openclaw": {
"install": [
Detected: suspicious.env_credential_access