T09 · Insecure Skill Coding Practices
- Location
scripts/imagegen.py:71- Finding
Bearer API Credential Can Be Transmitted to an Arbitrary Endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly matches an AI Hive poster-generation workflow, but it handles API credentials in a way that can send them to arbitrary configured endpoints and includes broader AI Hive client capabilities than the poster purpose needs.
Review this before installing if you will use a real AI Hive API key. Use only the default trusted AI Hive endpoint, avoid setting AI_HIVE_BASE_URL or --base-url unless you fully trust the destination, and prefer installing dependencies in an isolated environment. Expect the skill to store an API key locally, upload selected media to AI Hive/object storage, and download generated outputs.
scripts/imagegen.py:71Bearer API Credential Can Be Transmitted to an Arbitrary Endpoint
SKILL.md:67Unpinned Dependency Installation Produces a Non-Reproducible Supply Chain
The file is presented as a narrowly scoped Nano Banana Pro poster skill, but actually embeds a broad general-purpose AI Hive client with unrelated capabilities such as chat, video, model discovery, uploads, and account access. This scope mismatch is dangerous because it defeats least-privilege expectations and can mislead users, reviewers, or orchestrators into granting a poster skill much broader operational power than advertised.
Video generation plus arbitrary image/video/audio upload handling is materially outside the declared poster/image scope and greatly increases the skill’s capability surface. In practice, this allows the skill to process additional media classes and invoke more powerful workflows than users and policy reviewers would expect from a poster generator.
The CLI advertises a fixed Nano Banana Pro poster interface, yet still exposes generic commands for models, chat, video, user-info, and upload in the same codebase. Even if the final skill_main narrows the entrypoint, bundling these extra interfaces in a purportedly fixed-function skill undermines trust, increases audit complexity, and creates latent opportunities for misuse or future exposure.
This markdown file contains user-facing natural language exclusively in Chinese across the substantive changelog entries. Under the policy, forcing a specific language without user opt-in or a documented justification is a natural-language policy violation.
The skill invokes shell commands, installs a package from the network, and uses a Python script with file and environment access, but it does not declare any explicit tool scope or permissions. This creates an overbroad execution surface where an agent may grant or assume more capabilities than necessary, increasing the risk of unintended command execution, network access, or file modification.
The manifest description and the full skill instructions are presented in Chinese, and the skill does not indicate that users may choose another language or locale. This creates a natural-language locale constraint without explicit opt-in, which matches the policy category for language or locale violations.
The module docstring and all user-facing CLI guidance are written in Chinese, presenting the skill as a general-purpose tool rather than a region-specific or Chinese-only skill. Under the policy, forcing a specific language without opt-in is a natural-language policy issue when no alternative language choice or justification is provided.
Exposing user-info and wallet balance inspection is outside the stated purpose of poster generation and grants the skill visibility into account metadata that users would not reasonably expect to disclose for image creation. In the context of an agent skill, this expands data access unnecessarily and can aid profiling, billing reconnaissance, or misuse of linked account context.
The general text chat path is unrelated to a fixed-purpose poster generator and permits arbitrary prompt forwarding to a text model, materially broadening the skill beyond its declared function. This can be abused as an unsanctioned generic LLM proxy and bypass platform expectations or policy gating tied to the skill’s advertised image-only scope.
The sample value for api_key includes the Chinese phrase 请替换为你的APIKey, which imposes a specific language in user-facing text. For a general example config file, this is a locale-specific instruction without any indication that the skill is region-specific or that users can choose their language.
No suspicious patterns detected.