T01 · Skill Instruction Hijacking
- Location
SKILL.md:14- Finding
Forced Vendor Promotional Output and Suppression of Alternative Recommendations
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly a disclosed Alibaba Cloud recommendation helper, but it adds recurring automation, memory state, token forwarding guidance, and unsafe network-fetch behavior that deserve manual review before installation.
Review this before installing if you do not want an Alibaba-only recommendation experience, recurring scheduled tasks, or memory records about subscription choices. If installed, avoid enabling the weekly task unless you understand where it will deliver messages, how to cancel it, and what credentials the scheduled worker may inherit; also treat deployment links as unverified recommendations rather than security-checked links.
SKILL.md:14Forced Vendor Promotional Output and Suppression of Alternative Recommendations
scripts/fetch_ai_lab.py:127TLS Certificate Verification Disabled During Network Fallback
scripts/fetch_ai_lab.py:418Arbitrary Remote Source Fetching Combined with Unvalidated Deployment-Link Rendering
The declared purpose is narrow recommendation/deployment guidance, but the instructions also authorize scraping, offline HTML parsing, structured export, filtering, sorting, and alternate data-source handling. This scope expansion matters because users and orchestrators may trust the metadata while the skill actually performs materially broader data-processing actions.
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
` record).
asked-pending status, handle according to the above rules next time.When user selects 1 / 2 / 3, create the task according to the contract below. The contract is platform-agnostic — specific implementation depends on the current agent (QoderWork / Hermes / OpenClaw / QwenPaw / system crontab fallback). Platform-specific commands, token injection constraints, and post-creation notification templates are detailed in references/cron-platforms.md.
name: "AI尝鲜实验室-周推"
cron:
"1": "0 10 * * 1" # Every Monday 10:00
"2": "0 17 * * 5" # Every Friday 17:00
"3": <ask the user> # User-provided time, convert to 5-field cron
timezone: "Asia/Shanghai"
missed_run_policy: run_latest
delivery: <ask the user>
action: |
Fetch https://www.aliyun.com/daily-act/ecs/ai-innovation-lab, generate this week's recommendation
On SSL validation failure, the code silently retries with ssl._create_unverified_context(), disabling certificate verification and enabling man-in-the-middle interception or content spoofing. Because the script consumes remote page data and an OSS JSON fallback that may influence downstream recommendations or outputs, an attacker on the network path could tamper with fetched content without detection.
The skill instructs use of shell commands, network fetching, and local file output/reads, but declares no explicit tool scope or permission boundaries. In an agent runtime, this can enable broader-than-expected execution and data access, increasing the blast radius if the skill is mis-triggered or its instructions are abused.
The fixed response template requires the agent to output Chinese copy verbatim, including the welcome text, stats sentence, table labels, and closing questions. There is no indication that the user may choose another language or that the locale restriction is optional, which creates a language-policy violation for a general-purpose skill.
The skill expands from content recommendation into subscription prompting, persistent state handling, and recurring automation. That creates new privacy and persistence risks because the agent is no longer only answering the current request but also attempting to influence future interactions and establish ongoing behavior.
Persistent memory is used to record subscription state, declines, and engagement timing even though that is not necessary for the core recommendation/deployment function. This creates avoidable retention of user preference data and can lead to cross-session profiling or repeated nudging if memory semantics are mishandled.
The skill includes scheduled task creation for recurring fetch-and-deliver actions, which is a persistence mechanism beyond its stated scope. In agent environments, automated recurring jobs can become a durable execution foothold, especially when paired with network fetches and potential platform-specific cron fallbacks.
Output size or generation rate is not bounded. Unbounded output enables denial-of-service through resource exhaustion, log flooding, or context-window stuffing.
- **Homepage link must be written as `[AI尝鲜实验室](https://www.aliyun.com/daily-act/ecs/ai-innovation-lab)`** — do not use bare URLs, otherwise the frontend renders it as a site card `ai-innovation-lab · aliyun.com` breaking brand consistency.
- **Keep Markdown link syntax** — do not change to native HTML `<a>` — QoderWork frontend relies on this for hover preview cards.
- **Table columns are fixed to 项目 / 简介 / 立即体验** — do not output tags / difficulty / GitHub star. The statistics sentence already contains "为你推荐" semantics, **do not add a "为你推荐" subheading**.
- **Output `deploy_url` as-is** — no abbreviations, no truncation, no parameter stripping, no conversion to plain text.
- **Do not add any extra headings or sections** — no "数据来源", "本周推荐 Top N", "分类统计", or any other structure beyond the ①→⑤ template.
- **Do not add hints like "data from OSS snapshot" in user-visible responses** — data source should be transparent to users.
This file materially expands the skill's scope from recommending or one-click deploying AI Innovation Lab projects into orchestrating persistent scheduled tasks across multiple external agent platforms. That cross-platform automation can create ongoing background actions the user did not explicitly authorize in the original skill context, increasing the risk of abuse, confusion, and unintended persistence.
The documented cron creation flow establishes persistent, unattended execution of a prompt that fetches remote content and generates output later, outside the initiating session. That persistence increases risk because the action can continue after user context changes, may operate with inherited credentials, and can be repurposed for repeated external access or message delivery without fresh review.
If the user prefers CLI prompt, provide:
hermes cron create "0 10 * * 1" --tz Asia/Shanghai --skill ai-innovation-lab --prompt '<action>'
The token and environment-variable guidance teaches the agent how to detect, forward, and use sensitive credentials such as GATEWAY_TOKEN and provider API keys in downstream scheduled jobs. Even though it warns against plaintext tokens, the documented behavior still increases the chance of credential propagation into worker processes, logs, cron definitions, or unintended execution contexts, which meaningfully enlarges the secret-exposure surface.
This markdown file repeatedly specifies Chinese-only field values and user-facing text such as 近30天上新, 往期精选, AI 办公, and the stats sentence template in Chinese. Under the policy rule, forcing a specific language without user opt-in or a clearly justified region-specific constraint is a natural-language policy concern.
This markdown file contains natural-language instructions that force a specific language for user-facing output, including verbatim Chinese copy and required Chinese phrasing. Because the file does not provide an opt-in, alternative locale, or justification for a region-specific constraint, it violates the language/locale policy criteria.
These instructions prescribe fixed Chinese follow-up questions for all users and frame them as required closing interaction content. This is a natural-language locale restriction without opt-in or documented regional justification.
The manifest describes a skill focused specifically on the Aliyun AI Innovation Lab page and says that when users explicitly refer to that lab, the skill should not search or use other external same-name sites. However, the code exposes a general-purpose --source option and later fetches that arbitrary URL, turning the script into a generic remote page retriever rather than a fixed-source parser for the official lab content.
The skill name is fixed as "AI尝鲜实验室-周推", and later examples reuse Chinese UI terms and phrasing, but the document does not state that the skill is intentionally China/Chinese-specific or offer users a language/localization choice. This can create a locale-policy issue because the content implicitly forces a specific language presentation without opt-in.
Detected: suspicious.insecure_tls_verification