T09 · Insecure Skill Coding Practices
- Location
scripts/mercadolibre_mall_search.py:49- Finding
Unrestricted API Origin Enables Server-Side Request Forgery and Untrusted Authentication Flows
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill matches its shop-search purpose, but it stores login tokens in multiple local locations and can be pointed at arbitrary API origins, so it should be reviewed before installation.
Install only if you are comfortable authenticating to GeekBI and having local bearer-token state written on disk. Keep the API origin fixed to the intended HTTPS GeekBI endpoint, do not let untrusted prompts supply --base-url, and clear the .geekbi/auth state when it is no longer needed.
scripts/mercadolibre_mall_search.py:49Unrestricted API Origin Enables Server-Side Request Forgery and Untrusted Authentication Flows
scripts/geekbi_auth.py:56Bearer Tokens and Device Authentication State Are Replicated Across Multiple Local Directories
The declared purpose is store search/analysis, but the behavior reportedly includes login-state persistence, token lifecycle management, filesystem locking, and authenticated HTTP wrappers. This mismatch is dangerous because it can conceal credential-handling and local state manipulation behind an innocuous analytics description, making reviewers and users less likely to apply appropriate scrutiny.
The declared purpose is store search/analysis, but the behavior reportedly includes login-state persistence, token lifecycle management, filesystem locking, and authenticated HTTP wrappers. This mismatch is dangerous because it can conceal credential-handling and local state manipulation behind an innocuous analytics description, making reviewers and users less likely to apply appropriate scrutiny.
The declared purpose is store search/analysis, but the behavior reportedly includes login-state persistence, token lifecycle management, filesystem locking, and authenticated HTTP wrappers. This mismatch is dangerous because it can conceal credential-handling and local state manipulation behind an innocuous analytics description, making reviewers and users less likely to apply appropriate scrutiny.
The skill declares no explicit tool scope while analysis indicates capabilities such as file read, network, and shell. When a skill can invoke powerful tools without clear least-privilege boundaries, downstream agents may over-trust it and permit broader execution than intended, increasing the chance of data exposure or command misuse.
The display name, short description, and default prompt are written entirely in Chinese, which indicates the skill is oriented to a single language without any visible opt-in or explanation that it is region- or language-specific. Under the policy, forcing a specific language without user choice is a natural-language policy concern.
The instruction '原样使用服务端中文 msg' requires responses to be shown in Chinese exactly as returned by the server. This enforces a specific language without user opt-in or any documented locale justification, which matches the language/locale policy violation criteria.
The module docstring and subsequent user-facing strings are written exclusively in Chinese, and the CLI description/help text also assumes Chinese output. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified, which is not present in this file.
The manifest describes a skill for querying and analyzing Mercado Libre shop data based on GeekBI-returned data, which implies data retrieval logic, not local credential/session management. This file creates multiple persistent storage locations for login state and later stores access tokens and pending login challenges, adding account-session management behavior that is not disclosed in the skill description.
The user-config auth path is hardcoded under "temu-research-skill" even though this skill is for Mercado Libre shop search. That mismatch can cause unintended credential/state sharing or collision across unrelated skills, potentially letting one skill read or overwrite another skill's login state and confusing identity boundaries.
This Python file contains natural-language strings exclusively in Chinese, including the module docstring and multiple error messages returned to users. Under the policy, forcing a specific language without user opt-in or a documented locale-specific justification is a natural-language policy violation.
The module docstring and all user-facing CLI/help/error strings in this file are written in Chinese, which effectively constrains interaction to a specific language without any opt-in or alternative locale. The policy allows locale constraints only when choice is offered or the restriction is clearly documented and justified.
The skill description is entirely in Chinese and does not state that the skill is intended specifically for Chinese-speaking users or offer any language choice. Under the policy rule for natural-language violations, forcing a specific language without user opt-in can be a locale/language policy issue.
The manifest presents a shop search and analytics capability, but this file also implements storage introspection and deletion functions for authentication state, plus CLI commands to invoke them. Those operational capabilities are outside the user-facing description of searching and filtering Mercado Libre shops.
This Python file contains natural-language strings such as the module docstring and argparse description only in Chinese, which enforces a specific language for users. The policy allows locale constraints only when documented and justified or when users are offered a choice, neither of which is present here.
This script makes an authenticated HTTP request to a remote Mercado Libre endpoint using the user-provided base URL and then processes a user-supplied country/site query, but the file contains no confirmation prompt or user-facing disclosure about contacting an external service. For code files, outbound network transmission of user or system data should have some visible warning unless the operation is clearly disclosed elsewhere in the skill description.