T09 · Insecure Skill Coding Practices
- Location
scripts/analyze.js:12- Finding
Full Transcript and API Credential Sent to a Configuration-Controlled Third-Party Endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill does what it claims, but its AI analysis step can send full transcripts and an API credential to a configurable remote endpoint without a clear privacy boundary.
Review before installing if you will process private recordings. Treat the analysis step as an upload of the complete transcript to the configured AI endpoint, use a constrained API key, verify the provider URL, avoid sensitive transcripts unless you accept that data flow, and consider pinning dependencies before use.
scripts/analyze.js:12Full Transcript and API Credential Sent to a Configuration-Controlled Third-Party Endpoint
scripts/analyze.js:33Untrusted Transcript Content Can Inject Instructions into AI Analysis
SKILL.md:12Unpinned Dependency Installation and Unverified Alternate Model Source
The documented purpose suggests a local video-processing pipeline, but the workflow also depends on a separate analysis script that sends transcript content to an external AI service using a locally sourced API key. This mismatch is dangerous because users may supply sensitive media or transcripts believing processing is local-only, when in fact data may leave the system and invoke undeclared external services.
The documented purpose suggests a local video-processing pipeline, but the workflow also depends on a separate analysis script that sends transcript content to an external AI service using a locally sourced API key. This mismatch is dangerous because users may supply sensitive media or transcripts believing processing is local-only, when in fact data may leave the system and invoke undeclared external services.
The skill documents behavior that relies on environment configuration, local file creation, and outbound network access, but it declares no corresponding tool scope or permissions. This is dangerous because callers and policy engines cannot accurately constrain or review the skill’s capabilities, increasing the risk of unexpected data disclosure or unauthorized side effects.
This markdown file is in scope for vague-trigger review. The description states a general capability to parse local video files into transcripts and AI analysis, but it does not define clear trigger phrases, scope boundaries, or exclusion conditions, which can make invocation criteria ambiguous.
The natural-language instructions are presented entirely in Chinese and the default transcription parameter is language=zh, but the document does not state that the skill is intentionally region-specific or offer a language choice. This can violate language or locale policy when no user opt-in is provided.
The documentation mentions reading an API key from a local file but does not warn that transcript data is transmitted to an external AI service during analysis. This is dangerous because transcripts can contain sensitive or regulated content, and users may unknowingly expose private information off-host without informed consent.
The script reads a local OpenClaw credential file and extracts an API key automatically, which expands its access to local secrets beyond simple video parsing. While obtaining an API key is functionally related to calling the remote analysis service, silently pulling it from a general user config file increases the blast radius if the skill is reused, modified, or run in an unexpected environment.
The skill is presented as analyzing local video files, but it sends the full transcript to an external endpoint for processing. This creates a confidentiality risk because transcripts may contain sensitive spoken content, and users may reasonably expect local-only handling from the description unless remote transfer is clearly disclosed.
The code posts transcript content to a remote chat completion API without any user-facing warning, consent, or data handling notice. This is dangerous because the transcript may include private, regulated, or proprietary information, and the lack of notice prevents informed user choice about exfiltration to a third party.
The function signature sets the default language to "zh", which imposes a specific locale when the caller does not explicitly choose one. This is a natural-language policy concern because the skill silently forces a language choice rather than offering neutral auto-detection or requiring user selection.
When no language argument is supplied, the command-line path assigns "zh" automatically. This again forces a specific language/locale without opt-in, and the surrounding usage text does not clearly justify the restriction as region-specific behavior.
The ffmpeg commands use -y and generate output files such as audio_16k.wav and frame_*.jpg, which can overwrite existing files without prompting. The markdown does not explicitly warn users about this file-modifying behavior.
The natural-language comments, usage text, system prompt, and analysis prompt are written exclusively in Chinese, steering the skill toward a fixed language/locale. The file does not offer user opt-in for language selection or explain that the skill is intentionally region- or language-specific.
No suspicious patterns detected.