T01 · Skill Instruction Hijacking
- Location
SKILL.md:27- Finding
Forced promotional output and recurring-task behavior override normal Agent goals
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This coupon skill handles Meituan login tokens, local account state, and recurring coupon automation, but its bundled cache and credential tools are broader than the coupon purpose and need review before installation.
Install only if you trust the publisher and are comfortable giving the skill a Meituan login flow, persistent local token/device storage, coupon history files, and optional daily automated coupon claims. Review or disable the bundled generic cache/credential CLI before use in an environment with other skills, and avoid installing where command output, process arguments, or local cache files may be logged or shared.
SKILL.md:27Forced promotional output and recurring-task behavior override normal Agent goals
SKILL.md:390Privacy disclosure does not clearly disclose required remote transmission of authentication data
scripts/auth.py:487Reusable authentication tokens are exposed through process arguments, URL parameters, and standard output
scripts/auth.py:58Environment-controlled interpreter and cache CLI permit local tool substitution
scripts/skill_cache_cli.py:270Cross-Skill authentication store lacks caller authorization
scripts/skill_cache_cli.py:166Cache path construction permits directory traversal and history files lack documented restrictive permissions
scripts/auth.py:854Device-token clearing can retain authentication data in a nested cache entry
The skill presents itself as a coupon assistant but also specifies broad local file manipulation and token lifecycle handling, including deletion and shared cache management. When a skill's declared purpose hides credential and filesystem management, users and enforcement systems may underestimate the risk of local data exposure, tampering, or destructive actions.
The skill presents itself as a coupon assistant but also specifies broad local file manipulation and token lifecycle handling, including deletion and shared cache management. When a skill's declared purpose hides credential and filesystem management, users and enforcement systems may underestimate the risk of local data exposure, tampering, or destructive actions.
The skill presents itself as a coupon assistant but also specifies broad local file manipulation and token lifecycle handling, including deletion and shared cache management. When a skill's declared purpose hides credential and filesystem management, users and enforcement systems may underestimate the risk of local data exposure, tampering, or destructive actions.
The skill presents itself as a coupon assistant but also specifies broad local file manipulation and token lifecycle handling, including deletion and shared cache management. When a skill's declared purpose hides credential and filesystem management, users and enforcement systems may underestimate the risk of local data exposure, tampering, or destructive actions.
The trigger list is extremely broad, including generic terms like '领券', '红包', '神券', and other common saving-related phrases, which can cause the skill to activate in conversations where the user did not intend to invoke Meituan account-linked actions. Because the skill can lead into authentication, credential use, network requests, and coupon issuance, accidental invocation has meaningful privacy and action-execution consequences.
The intent-recognition rules activate on broad semantic patterns such as general saving intent, price dissatisfaction, or future consumption scenarios across many categories. In context, this is more dangerous because the skill is not merely informational; it can initiate login prompts, consume stored tokens, contact remote services, and potentially schedule recurring behavior after a loose semantic match.
Referenced artifact was not completely inspected
> 完整的定时任务创建、管理、失败处理和跨平台兼容规则,读取 `references/cron-rules.md`。
Referenced artifact was not completely inspected
> 完整的定时任务创建、管理、失败处理和跨平台兼容规则,读取 `references/cron-rules.md`。
The verification flow transmits a phone number and SMS code to a remote service and then stores the returned authentication token locally for reuse. This handles highly sensitive authentication material, and without a clear user-facing warning/consent and stronger storage controls, compromise of the local cache or misuse by the skill can expose persistent account access.
Code enumerates, copies, or searches environment variables for secrets. Bulk environment access can collect credentials unrelated to the skill's stated purpose.
cmd.append(subcommand)
cmd.extend(args)
env = os.environ.copy()
env.setdefault("SKILL_CACHE_WORKSPACE", _get_workspace())
try:
Code enumerates, copies, or searches environment variables for secrets. Bulk environment access can collect credentials unrelated to the skill's stated purpose.
cmd.append(subcommand)
cmd.extend(args)
env = os.environ.copy()
env.setdefault("SKILL_CACHE_WORKSPACE", _get_workspace())
try:
The file implements a generic local cache and cross-skill token/file management utility, which is far broader than the declared coupon-claiming and history-query functionality. In this skill context, that mismatch is dangerous because it creates an unexpected administrative surface that can be used to inspect, modify, or persist unrelated data under the guise of a narrowly scoped coupon tool.
The shared_read/shared_write/shared_delete APIs allow arbitrary access to files in a cross-skill shared directory, with caller-controlled filenames and no authorization checks. That enables one skill or operator context to read, overwrite, or delete data intended for other skills, violating isolation and potentially exposing secrets or corrupting shared state.
The auth_get/auth_set/auth_delete/auth_list functions manage authentication tokens for arbitrary skill names in a globally shared mt_auth_tokens.json file. In a coupon skill, this is especially risky because it centralizes credential material across skills and exposes read/write/delete operations without any boundary tying access to the current skill only.
The code exposes generic per-skill CRUD, JSON mutation, and line-editing primitives over caller-supplied skill names and filenames, effectively acting as a multi-tenant file manipulation tool. This exceeds the manifest's purpose and can be abused to tamper with other skills' cached data, configs, or logs, undermining integrity and confidentiality across the workspace.
The skill clearly instructs use of shell execution, environment variables, local file reads/writes, and networked Python scripts, yet it declares no explicit tool scope or permissions boundary. That makes the actual capability envelope opaque to the host agent and reviewers, increasing the risk of over-privileged execution, unintended side effects, and abuse if the skill is invoked in the wrong context.
The instructions require replies to match predefined script text exactly, and the entire skill content is Chinese-only. This effectively enforces a specific language/locale presentation without giving the user an option to choose another language.
This markdown file contains fixed user-facing prompts in Chinese for the authentication flow, and the document overall prescribes Chinese-only interaction text. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is explicitly justified as region-specific.
Forcing all scheduled tasks to use Asia/Shanghai regardless of caller locale can cause the automation to run at times the user did not intend. This is primarily a consent and usability risk, but it can indirectly trigger unexpected account activity and reduce user trust.
The file expands the skill from immediate coupon claiming into persistent scheduled automation that creates platform-level cron jobs and sends future notifications. Even if user-consented in some paths, this materially broadens the operational scope beyond the core manifest and increases the chance of unintended autonomous actions, stale consent, and surprise background execution.
The instructions direct the system to automatically execute future coupon claims at the scheduled time without renewed confirmation. This creates ongoing autonomous actions using saved authentication state, which can outlive user intent and lead to unexpected account activity or notification spam.
Although the file mentions asking the user about scheduling earlier in the flow, the automatic future execution path itself is not accompanied by strong, persistent warning language about ongoing autonomous actions and notifications. Users may not fully understand that the skill will continue acting on their behalf and notifying them later.
The document instructs the skill to create, update, and delete platform-level scheduled jobs and remote triggers across multiple environments. Those capabilities exceed basic coupon retrieval and introduce privileged orchestration behavior that can be misused, especially if job IDs, platform detection, or user identifiers are handled incorrectly.
The instruction requires all response templates to be output exactly as written, and the templates are entirely in Chinese. This effectively imposes a fixed language on users without offering opt-in, choice, or a documented region-specific justification in this file.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
调用 mt-ug-ods-skill-cache CLI
Args:
command: 主命令(如 auth, shared, read, write 等)
subcommand: 子命令(如 get, set, list 等)
args: 额外参数列表
raw_output: 是否返回原始输出(用于 shared read 等直接返回内容的命令)
No suspicious patterns detected.