T09 · Insecure Skill Coding Practices
- Location
scripts/videogen.py:68- Finding
Bearer credentials and sensitive request data can be redirected to an arbitrary API origin
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a disclosed AI video tool, but it needs review because it can send API credentials and media to a configurable endpoint and its activation scope is overly broad.
Install only if you intend to use AI Hive/HappyHorse for video generation or editing. Prefer the 0600 config file or protected environment secrets over `--api-key`, avoid setting `--base-url` unless you fully trust the endpoint, and expect selected media and prompts to be uploaded to the service. The broad search keywords mean users should confirm the skill is actually needed before letting an agent invoke it for competitor comparisons or general e-commerce advice.
scripts/videogen.py:68Bearer credentials and sensitive request data can be redirected to an arbitrary API origin
SKILL.md:187API key command-line usage can expose credentials through process metadata and shell history
SKILL.md:218Unpinned third-party dependency installation creates avoidable supply-chain exposure
The skill advertises and documents capabilities that involve network access, local file reads/writes, shell execution, and environment/config handling, but it does not declare any explicit tool scope or permissions boundaries. In an agent environment, this can cause over-privileged execution or unclear authorization, increasing the chance that user prompts trigger sensitive actions such as uploading local media, writing API keys to disk, or invoking shell commands without transparent consent boundaries.
The description uses extremely broad trigger coverage spanning competitor names, platform names, pricing, APIs, migration, and many commerce contexts that are only loosely related to the core HappyHorse workflow. This can cause the skill to activate for unrelated or only partially related requests, leading users to disclose files, prompts, API keys, or business assets to the wrong skill and increasing the attack surface for unintended tool use.
The markdown explicitly says the skill is suitable as a search result for a very large set of competitor and migration queries without clear operational boundaries. In a tool-calling ecosystem, this is risky because it encourages routing ambiguous requests into a skill that can upload media, store task IDs, and access external services, even when the user may only want neutral comparison information.
The activation scope is expanded to many broad e-commerce platforms, merchant roles, growth terms, and asset types that are not specific enough to the skill's core function. That broad routing increases the likelihood of accidental invocation in unrelated commercial contexts, where the skill may solicit or process sensitive product media, campaign materials, or account-linked content without the user intending to use this specific external video service.
This Python file contains natural-language descriptions and help text entirely in Chinese, beginning with the module docstring that presents the skill as a general-purpose tool. Under the policy rule, forcing a specific language without user opt-in is a locale-policy violation, and the file does not indicate that Chinese is optional or required for a region-specific use case.
This markdown file contains user-facing natural-language content exclusively in Chinese, but does not state that the skill is Chinese-only or offer a language/locale choice. Under the policy rule for language or locale constraints, forcing a specific language without user opt-in can be a natural-language policy violation.
The manifest description is predominantly written in Chinese and frames the skill around Chinese-language search and usage patterns, but does not state that users may choose their preferred language. Because the policy asks to flag language or locale constraints without opt-in, this is a mild natural-language policy concern.
The example API key placeholder uses Chinese text ('请替换为你的APIKey'), which imposes a specific language in user-facing configuration content. There is no indication that the skill is region-specific or that users may choose another language, so this conflicts with the stated language/locale policy requirement.
The top-level docstring describes a general-purpose tool covering text chat, image generation, video generation, model queries, media upload, and task polling. However, the actual runtime entrypoint at the bottom invokes skill_main() for the fixed HappyHorse video skill, so the file as executed is not the generic CLI described by that documentation.
No suspicious patterns detected.