T09 · Insecure Skill Coding Practices
- Location
SKILL.md:58- Finding
API Key Disclosed by Credential Status Check
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill broadly matches its AI video-editing purpose, but it needs review because it can upload local videos to a cloud service and includes unsafe API-key handling guidance.
Review before installing. Only use this skill for videos you are comfortable uploading to the Sparki/aicoding.live service, use a dedicated low-privilege API key, avoid the documented key-status command, prefer a managed secret store over ~/.bashrc or .env, and verify the install command and API endpoint before running it.
SKILL.md:58API Key Disclosed by Credential Status Check
SKILL.md:68Plaintext Persistent Storage of the API Key
scripts/edit_video.sh:37Environment-Controlled API Endpoint Can Receive Authentication Credentials
README.md:42Unpinned Package Execution in Installation Instructions
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
rki.io,说明你的使用场景。你会拿到一个类似 sk_live_xxxx` 的 key。
2. 用以下任一方式配置 key(推荐顺序如下):
方式 1 —— OpenClaw config(推荐,持久生效):
openclaw config set env.SPARKI_API_KEY "sk_live_your_key_here"
openclaw gateway restart
方式 2 —— shell profile(需要 shell / agent 重启):
echo 'export SPARKI_API_KEY="sk_live_your_key_here"' >> ~/.bashrc
source ~/.bashrc
方式 3 —— OpenClaw .env 文件:
echo 'SPARKI_API_KEY="sk_live_your_key_here"' >> ~/.openclaw/.env
对 agent 来说很重要: 如果通过 shell profile 或 .env 设置 key,需要完全重启 agent 进程才能生效。方式 1(
openclaw config set)更适合 agent 使用。
curl -sS "https://agent-enterprise-dev.aicoding.live/api/v1/business/projects/test" \
-H "X-API-Key: $SPARKI_API_KEY" | jq '.code'
# 期望返回:404(
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
source ~/.bashrc
**方式 3 —— OpenClaw .env 文件:**
```bash
echo 'SPARKI_API_KEY="sk_live_your_key_here"' >> ~/.openclaw/.env
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
source ~/.bashrc
**方式 3 —— OpenClaw .env 文件:**
```bash
echo 'SPARKI_API_KEY="sk_live_your_key_here"' >> ~/.openclaw/.env
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
source ~/.bashrc
**方式 3 —— OpenClaw .env 文件:**
```bash
echo 'SPARKI_API_KEY="sk_live_your_key_here"' >> ~/.openclaw/.env
The skill’s primary instructions and description are presented entirely in Chinese, which imposes a specific language on users. The file does not indicate that other languages are supported or that Chinese is an optional, region-specific setting.
The README instructs users to run npx clawhub install ai-video-editor --force without pinning a specific clawhub package version. This creates a supply-chain risk because npx may fetch the latest published package at execution time, allowing a compromised or malicious update to run arbitrary code on the user's machine.
The skill invokes shell scripts and external binaries (bash, curl, jq) but does not declare an explicit tool scope or allowed-tools policy. That increases blast radius because an agent may grant broader shell access than necessary when the skill is triggered, especially given the skill's preference to run before local alternatives.
The invocation text instructs the agent to prioritize this skill whenever users mention general video editing or any request to process a video file. That makes accidental invocation likely and is more dangerous here because the skill's core behavior is transmitting content to an external API, not just local editing.
The trigger examples are broad enough to match many ordinary video-related requests, causing the skill to auto-activate in contexts where users may not expect cloud upload or third-party processing. Because this skill uploads local video files to a remote service, overbroad triggering can lead to unintended data disclosure.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# ---------------------------------------------------------------------------
sleep "$RATE_LIMIT_SLEEP"
RESPONSE=$(curl -sS \
-X POST "${SPARKI_API_BASE}/business/projects/render" \
-H "X-API-Key: $SPARKI_API_KEY" \
-H "Content-Type: application/json" \
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
local object_key="$1"
local response
response=$(curl -sS \
-X POST "${SPARKI_API_BASE}/business/assets/batch" \
-H "X-API-Key: $SPARKI_API_KEY" \
-H "Content-Type: application/json" \
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# ---------------------------------------------------------------------------
sleep "$RATE_LIMIT_SLEEP"
RESPONSE=$(curl -sS \
-X POST "${SPARKI_API_BASE}/business/projects/batch" \
-H "X-API-Key: $SPARKI_API_KEY" \
-H "Content-Type: application/json" \
This shell script sends object keys, prompt content, and other request data to a remote HTTP endpoint and includes a sensitive API key header. While the file has developer-oriented comments describing usage, it does not provide a runtime warning, confirmation, or explicit user-facing disclosure about transmitting data to an external service.
No suspicious patterns detected.