T09 · Insecure Skill Coding Practices
- Location
scripts/doubao.sh:90- Finding
Unescaped User Input Allows JSON Request-Body Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill mostly does what it says, but it promotes watermark removal and gives unsafe API-key handling instructions that could expose the user's Volcengine account.
Install only after review. Use a restricted, rotatable Volcengine ARK key, do not paste or share full ARK_API_KEY values, avoid storing the key in common shell startup files when a safer secret store is available, and assume prompts, image URLs, task metadata, and generated media URLs are sent to Volcengine. Do not use the watermark-removal examples unless you own the content or have explicit authorization, and avoid exposing this wrapper to untrusted prompts until JSON encoding is fixed.
scripts/doubao.sh:90Unescaped User Input Allows JSON Request-Body Injection
README.md:444Troubleshooting Guidance Encourages Disclosure of the Complete API Key
README.md:65API Key Verification Commands Print the Secret in Plaintext
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
HTTP客户端)
# 1. 进入 skill 目录
cd ~/.openclaw/workspace/skills/doubao-skill-v2
# 2. 安装依赖
sudo apt-get install curl jq # Ubuntu/Debian
# 或
brew install curl jq # macOS
# 3. 设置环境变量
export ARK_API_KEY="your_api_key_here"
# 或添加到 ~/.bashrc
echo 'export ARK_API_KEY="your_api_key"' >> ~/.bashrc
source ~/.bashrc
# 4. 验证安装
cd scripts
./doubao.sh help
cd ~/.openclaw/workspace/skills/doubao-skill-v2/scripts
# 生成图片
./doubao.sh img "一只可爱的小猫"
# 编辑图片(去除水印)
./doubao.sh edit "https://..." "remove watermark"
# 生成视频(异步)
./doubao.sh vid "一个人在跳舞" async '
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
HTTP客户端)
# 1. 进入 skill 目录
cd ~/.openclaw/workspace/skills/doubao-skill-v2
# 2. 安装依赖
sudo apt-get install curl jq # Ubuntu/Debian
# 或
brew install curl jq # macOS
# 3. 设置环境变量
export ARK_API_KEY="your_api_key_here"
# 或添加到 ~/.bashrc
echo 'export ARK_API_KEY="your_api_key"' >> ~/.bashrc
source ~/.bashrc
# 4. 验证安装
cd scripts
./doubao.sh help
cd ~/.openclaw/workspace/skills/doubao-skill-v2/scripts
# 生成图片
./doubao.sh img "一只可爱的小猫"
# 编辑图片(去除水印)
./doubao.sh edit "https://..." "remove watermark"
# 生成视频(异步)
./doubao.sh vid "一个人在跳舞" async '
The skill explicitly implements watermark-removal assistance, which facilitates removal of provenance, branding, or copyright indicators from third-party images. In the context of a general image/video API wrapper, this adds a high-risk misuse capability unrelated to core functionality and can enable IP infringement or deceptive redistribution.
The default edit prompt automatically instructs the model to remove watermarks while preserving the original content, directly enabling attribution stripping with no extra user intent required. This lowers the barrier to misuse and creates a built-in circumvention behavior in the skill itself.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Ubuntu/Debian
sudo apt-get install curl jq
# macOS
brew install curl jq
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Ubuntu/Debian
sudo apt-get install curl jq
# macOS
brew install curl jq
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Ubuntu/Debian
sudo apt-get install curl jq
# macOS
brew install curl jq
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Ubuntu/Debian
sudo apt-get install curl jq
# macOS
brew install curl jq
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Ubuntu/Debian
sudo apt-get install curl jq
# macOS
brew install curl jq
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Ubuntu/Debian
sudo apt-get install curl jq
# macOS
brew install curl jq
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Ubuntu/Debian
sudo apt-get install curl jq
# macOS
brew install curl jq
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Ubuntu/Debian
sudo apt-get install curl jq
# macOS
brew install curl jq
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Ubuntu/Debian
sudo apt-get install curl jq
# macOS
brew install curl jq
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Ubuntu/Debian
sudo apt-get install curl jq
# macOS
brew install curl jq
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Ubuntu/Debian
sudo apt-get install curl jq
# macOS
brew install curl jq
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Ubuntu/Debian
sudo apt-get install curl jq
# macOS
brew install curl jq
The documentation advises users to persist the API key in ~/.bashrc, which stores a sensitive credential in a broadly readable and routinely sourced startup file without discussing exposure risks. This increases the chance of accidental disclosure through backups, screenshots, shell-history-adjacent troubleshooting, or access by other local processes/users.
Telling users to verify setup by running 'echo $ARK_API_KEY' encourages printing the full secret directly to the terminal, where it may be visible to shoulder-surfing, terminal logging, screen recording, or copied support transcripts. Exposing secrets in plaintext materially raises the risk of credential theft.
The README demonstrates sending remote image URLs and prompts to an external API but does not clearly warn that user content is transmitted to a third-party service for processing. This omission can cause users to unknowingly upload sensitive media or confidential prompts, creating privacy and compliance risks.
The troubleshooting section asks users to share 'env | grep ARK_API_KEY', which can disclose the full API key in issue reports, chats, logs, or tickets. This is a direct secret-leak pattern and could allow unauthorized API use if the credential is exposed.
The skill documents and relies on shell execution but does not declare any explicit tool scope such as permissions or allowed-tools. This creates a security governance gap: an agent or platform may permit broader execution than intended, making review, sandboxing, and user consent harder for a skill that installs packages, edits shell startup files, and runs scripts.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
cd ~/.openclaw/workspace/skills/doubao-skill-v2
# 2. 安装依赖
sudo apt-get install curl jq # Ubuntu/Debian
# 或
brew install curl jq # macOS
The documentation presents watermark/logo removal as a standard feature without any warning about copyright, ownership, authorization, or misuse. That normalizes a potentially abusive workflow and can facilitate unauthorized removal of attribution, licensing marks, or provenance indicators from third-party content.
The skill explicitly promotes watermark removal as a normal use case, which increases the likelihood of misuse for copyright evasion, attribution stripping, or fraudulent content reuse. In this context, the issue is more serious because the examples and default prompts directly steer users toward that behavior instead of presenting a general-purpose edit capability.
The manifest advertises text/image/video generation via the Doubao/Volcengine API but does not clearly warn that prompts, image URLs, and possibly related metadata will be transmitted to an external third-party service. This can lead users to submit sensitive data under the false assumption that processing is local, creating privacy, confidentiality, and compliance risks.
No suspicious patterns detected.