Dangerous exec
- Finding
- Shell command execution detected (child_process).
Security checks across static analysis, malware telemetry, and agentic risk
The skill mostly matches its Douyin download/transcription purpose, but it under-discloses that semantic segmentation can send transcript text to MiniMax using an undeclared API key.
Before installing, assume extract may download media, create local files, upload audio to Silicon Flow, and, if MINIMAX_API_KEY is available, send transcript text to MiniMax. Use --no-segment or unset MINIMAX_API_KEY if you do not want that extra external provider involved.
66/66 vendors flagged this skill as clean.
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
A user may believe transcript segmentation stays inside OpenClaw when it can be sent to a third-party provider.
The user-facing documentation says segmentation uses OpenClaw's built-in LLM, but douyin.js defines and calls a MiniMax external API for segmentation. This changes the user's understanding of where transcript content goes.
- ✂️ 语义分段(调用 OpenClaw 内置 LLM) ... 自动调用 OpenClaw 内置 LLM 进行**自然语义分段**
Update the documentation to clearly name MiniMax, explain what data is sent, and make external segmentation an explicit, well-disclosed choice.
If MINIMAX_API_KEY is present in the environment, the skill may use that account and quota without the user expecting it from the README or metadata.
The code can use a MiniMax API key, while the registry/SKILL requirements only disclose SILI_FLOW_API_KEY. This adds an undeclared credential and account authority.
* - MINIMAX_API_KEY: MiniMax API 密钥 (用于语义分段功能) ... apiKey = process.env.MINIMAX_API_KEY;
Declare MINIMAX_API_KEY in metadata and SKILL.md, document the provider and scope, and avoid using it unless the user explicitly enables segmentation.
Private or sensitive speech transcriptions from a video could be shared with an additional external service.
The transcribed text is sent to MiniMax for chat completion-based segmentation. That external data boundary is not accurately disclosed in SKILL.md, which describes an OpenClaw built-in LLM.
const MINIMAX_BASE_URL = 'https://api.minimaxi.com'; ... { role: "user", content: text } ... spawn('curl', [ ... '-d', JSON.stringify(data) ])Clearly disclose all external providers, send only user-approved content, provide a default local/no-segment option, and document retention/privacy expectations.
The skill depends on local binaries and will execute them with the paths and API request data it constructs.
The skill runs local ffmpeg and curl subprocesses. This is expected for media extraction and provider API calls, and the code uses argument arrays rather than shell string execution, but it is still local command execution.
const proc = spawn('ffmpeg', args); ... const proc = spawn('curl', [Use trusted ffmpeg/curl binaries, keep output paths scoped, and consider replacing curl subprocess calls with native HTTPS requests to reduce command-line credential exposure.