T09 · Insecure Skill Coding Practices
- Location
scripts/geekbi_auth.py:68- Finding
Authentication tokens are redundantly stored under an unrelated Skill namespace
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a coherent GeekBI/Ozon research helper, but it needs review because it stores login tokens in multiple local places and allows custom API destinations.
Review before installing. Use it only if you are comfortable logging in to GeekBI and storing local auth state, avoid using custom --base-url values, and prefer a version that stores credentials in one clearly documented user-private location and restricts API/auth URLs to approved HTTPS GeekBI origins.
scripts/geekbi_auth.py:68Authentication tokens are redundantly stored under an unrelated Skill namespace
scripts/ozon_search_common.py:104Authenticated API clients accept arbitrary and non-HTTPS origins
Claiming broad category analytics while actually focusing on site-list queries is deceptive from a security and governance perspective because it obscures what external resources are accessed and what data is truly processed. Such misrepresentation can defeat least-privilege review and make it harder to detect unauthorized expansion of capability over time.
Claiming broad category analytics while actually focusing on site-list queries is deceptive from a security and governance perspective because it obscures what external resources are accessed and what data is truly processed. Such misrepresentation can defeat least-privilege review and make it harder to detect unauthorized expansion of capability over time.
Claiming broad category analytics while actually focusing on site-list queries is deceptive from a security and governance perspective because it obscures what external resources are accessed and what data is truly processed. Such misrepresentation can defeat least-privilege review and make it harder to detect unauthorized expansion of capability over time.
The skill advertises operational behavior that invokes external scripts and reference files, but it does not declare any explicit tool or permission scope. In an agent environment, undeclared access to file reads, shell execution, or network use reduces reviewability and can allow broader capabilities than users or platform policy expect.
The file is entirely written as Chinese-only user-facing guidance and does not indicate that users may choose another language or locale. Under the stated policy, forcing a specific language without opt-in is a natural-language policy violation unless the locale restriction is explicitly documented and justified.
The manifest describes a read-oriented Ozon category analysis skill that queries synced category trees, details, market scale, and historical metrics. This file instead implements a generic GeekBI agent login flow, persistent credential storage, token refresh/polling, and CLI state management, which are substantial behaviors not reflected in the stated skill description.
This Python code contains natural-language strings for errors, prompts, and command descriptions entirely in Chinese, such as the module docstring, exception messages, and argparse help text. Under the policy, forcing a specific language without user opt-in is a locale/language policy violation unless the constraint is clearly documented and justified.
For a skill described as querying Ozon category and market data, this file adds a separate capability to create, mirror, lock, mutate, and delete local authentication state across user config, skill, and working directories. While authentication itself may support API access, the broad local state-management and clearing CLI functionality is not described as part of the skill’s intended user-facing purpose.
The script’s natural-language interface is entirely in Chinese, including the module docstring, CLI description, validation errors, and error messages. This imposes a specific language on users without offering any locale selection or documenting that the tool is intentionally region/language-specific.
This code file contains natural-language strings that force a specific language for the script description and runtime messages. Under the policy, a fixed language without user opt-in or explicit justification is a locale/language policy violation.
The visible user-facing description and installation text are entirely in Chinese, which effectively imposes a specific language on users. The file does not indicate that the skill is intentionally limited to Chinese-speaking users or provide an opt-in or alternative language.
The module docstring and argument parser description are written only in Chinese, which imposes a specific language for user-facing interaction. Under the policy, locale-specific behavior should either offer language choice or clearly document a justified regional constraint; neither is present here.
The module docstring and subsequent user-visible messages are written only in Chinese, which imposes a specific language on users without an opt-in or documented locale constraint. Under the language policy, locale-specific behavior should be optional or explicitly justified.
This code file performs an HTTP request via authenticated_json_request using user-supplied search parameters, but the file only states that it queries Ozon products and does not explicitly disclose that input will be sent over the network. There is no confirmation prompt or explicit user-facing warning near the request call about external transmission of provided search criteria.