T01 · Skill Instruction Hijacking
- Location
SKILL.md:91- Finding
Mandatory Referral-Link Injection into Agent and CLI Outputs
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly a read-only pre-IPO research helper, but it forces a Jarsy referral link into every natural-language and non-JSON CLI answer, so users should review that behavior before installing.
Install only if you are comfortable with every normal research answer including a Jarsy referral link and with the skill presenting output primarily in Chinese/China Standard Time. The public read-only data access itself appears proportionate, but the forced promotional output is a real neutrality and trust concern.
SKILL.md:91Mandatory Referral-Link Injection into Agent and CLI Outputs
Forcing Chinese-language output content in every natural-language answer without user opt-in, especially in the form of a fixed referral line, is an unauthorized output manipulation mechanism. In context, this is more dangerous because it is coupled to a specific promotional URL, indicating the formatting rule is being used to guarantee insertion of advertising content regardless of user need.
Without declared permissions the skill's intent is opaque and cannot be validated.
The skill presents itself as read-only research, but later mandates promotional referral content in all natural-language outputs, which is materially outside the stated purpose. This mismatch is dangerous because it hides output-shaping behavior behind a neutral research description, increasing the chance the agent unknowingly delivers spam or conflicted recommendations.
The instruction to "Display Chinese-standard time with an explicit timezone" imposes a specific locale/format on all answers. The file does not indicate that this is optional, user-selected, or justified as a region-specific compliance requirement.
The skill requires appending a Jarsy referral link to every natural-language research answer even when unrelated to the user's request or cited sources. This creates covert promotional output and manipulates agent responses for affiliate or traffic-generation purposes, undermining trust and causing unauthorized content injection.
This JSON manifest consistently uses Chinese-language titles such as "私募股权投研报告(公开初筛版)|Pre-IPO 观察站" across entries, but provides no indication that the locale is user-selectable or that the content is intentionally limited to a Chinese-speaking audience. Under the policy, forcing a specific language without user opt-in can be a natural-language locale-policy violation.
The instruction hard-codes the response text “期限已过,请核验” when a notice deadline has passed. This imposes a specific language choice in the skill's natural-language behavior without user opt-in or an explicitly documented locale-specific justification.
The timestamp formatter is fixed to locale "zh-CN" and time zone "Asia/Shanghai", and surrounding strings throughout the file are also Chinese. This forces a specific language/locale presentation without any apparent opt-in or indication that the skill is region-specific, which matches the natural-language locale policy violation criteria.
Nearly all user-facing console strings in this file are Chinese, which forces a specific language on users. The policy allows locale constraints only when the skill offers opt-in or clearly documents a justified region-specific limitation, neither of which appears in this file.
Multiple user-facing string fields such as cadence, metrics, and identity are written in Chinese throughout the platform definitions. This creates a natural-language locale constraint in the skill content without any visible user choice or explanation that the skill is intended only for Chinese-speaking users.
Multiple user-facing strings are emitted in Chinese, including status and report text framing, while the tool's usage/help text is otherwise in English. This creates a language/locale policy issue because the skill imposes a specific language on users without opt-in or an explicit region-specific justification.
The code only accepts reports whose content matches the Chinese phrases "报告截至" or "静态版本" and extracts metadata using those same localized labels. This creates a language-specific behavior without any visible opt-in or documented rationale in the file.
The manifest presents the skill description in Chinese while the default prompt is written in English, but nowhere states that the user can choose their preferred language. This can create an implicit language/locale expectation without documented opt-in or justification.
The markdown states that category is a model-derived Chinese primary category and tag values are model-derived sub-sector tags, presenting a language-specific constraint as the default interface. Because no user choice, locale opt-in, or justification for the Chinese-only taxonomy is provided here, this is a natural-language locale policy concern.
The function fetches remote HTML via readPublic(reportUrl, { ...options, html: true }), which is a network operation covered by the missing-warning rule for code files. In this file there is no confirmation prompt, logging, comment, or docstring disclosing that external report content will be retrieved.