T01 · Skill Instruction Hijacking
- Location
landing/index.html:1004- Finding
Forced Branded Output and Conversation-Memory Extraction
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly does what it says, but it also encourages broad memory-based personal profiling, shareable external profile links, and unpinned skill installation in ways users should review carefully.
Install only if you are comfortable with a Chinese-language personal-profile skill. Do not let it use long-term memory or past chats unless you intentionally want those details included, review generated profile text before sharing links, avoid putting secrets or private third-party information into the prompts, pin or manually inspect any GitHub install, and add your own .gitignore rules for generated persona/homepage files.
landing/index.html:1004Forced Branded Output and Conversation-Memory Extraction
landing/index.html:1083Prompt Injection Through Unsanitized Friend-Profile Fields
assets/caojuege-homepage-template.html:368Hard-Coded Third-Party Promotion in the Default Homepage Output
以产品为笔,和世界对话。
assets/renaissance-homepage-template.html:5Unpinned Remote JavaScript Executed in Generated Pages
README.md:138Documented Git Privacy Safeguard Is Missing
The declared description says the skill should transform personal materials or interview answers into a Markdown persona document and polished HTML homepage. The supplied code does not process user materials, summarize interviews, generate Markdown, or build a personal profile page. Instead, it only registers a custom HTML element that inserts and styles an image. This is a materially different primary purpose, so the description does not accurately represent the code chunk.
The declared purpose describes a content-generation skill that transforms personal materials or interview answers into two deliverables: a Markdown persona file for AI agents and an HTML homepage for humans. The supplied code instead is a front-end canvas drawing module for a fixed-format visual card. It contains typography/layout helpers, theme definitions, QR image loading, and export functions (renderToCanvas/renderToBlob/renderToDataURL) to produce a PNG-like image. There is no logic for synthesizing a persona document, producing Markdown, generating HTML pages, or processing interview/source materials into those formats. While both relate loosely to personal profile presentation, the actual code's primary purpose and output format are materially different from the declared description.
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
<!DOCTYPE html><html lang="zh-CN"><!-- Template: 文艺复兴风格 --><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{NAME}} · 个人主页 — 文艺复兴风格</title>
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
</figure>
</section>
<!-- WORK -->
<section id="work" class="section">
<div class="wrap">
<div class="sec-head">
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
</div>
</header>
<!-- HERO + ABOUT merged -->
<section class="hero" id="top">
<div class="col-text">
<span class="badge fade"><span class="dot"></span>Personal Homepage · 个人主页</span>
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
</head>
<body>
<!-- =========================== LANDING ============================ -->
<div id="landing">
<nav class="nav">
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
</footer>
</div>
<!-- =========================== RESULT ============================ -->
<div class="render-page" id="renderPage">
<nav class="nav">
<div class="nav-inner">
The skill explicitly encourages users to provide highly sensitive personal materials such as articles, resumes, podcasts, social media, notes, links, and to rely on AI long-term memory, but it does not warn about privacy risks, retention, third-party processing, or accidental inclusion of confidential data. In this context, the omission is security-relevant because the skill is designed to aggregate and synthesize identity-rich data into durable artifacts, increasing the chance of oversharing, profiling, or unintended disclosure.
The default prompt explicitly instructs the model in English despite the skill being described primarily for Chinese-language use cases, which can override or bias the user's preferred language without clear opt-in. This is not typically a security-critical issue, but it can degrade user control and cause unintended disclosure or mishandling if downstream processing assumes the wrong language or locale.
The HTML declares lang="zh-CN", which fixes the page locale to Simplified Chinese. In combination with the many Chinese-only navigation and section labels elsewhere in the template, this indicates a forced language/locale choice rather than offering user opt-in or alternatives.
The HTML root element hard-codes lang="zh-CN", which imposes a specific language/locale on all generated pages. This file does not offer a user opt-in or indicate that the template is intentionally limited to a China-specific audience, so it conflicts with the language/locale policy criteria.
The HTML root sets lang="zh-CN", which hard-codes a specific language/locale for the entire page. Under the policy, locale constraints should either be user-selectable or clearly documented as region-specific; this template provides neither.
The entire skill file is written as Chinese-only operating guidance and includes default phrasing and prompts in Chinese, but it does not state that language selection is optional or limited to a justified region-specific use case. Under the policy, forcing a specific language without user opt-in is a natural-language locale violation.
The header comment and embedded user-facing strings throughout the file are written in Chinese and present the skill as a Chinese-language experience by default, with no indication that users can choose another language or locale. This can violate language/locale policy when a skill implicitly requires one language without documenting opt-in or offering alternatives.
The document declares lang="zh-CN", and the visible interface and prompt text are entirely in Chinese, which effectively constrains the skill experience to one language/locale. Under the policy, locale restrictions should either offer user choice or be clearly justified as region-specific.
The page explicitly tells the agent/user to clone and install a GitHub-hosted skill into a local skills directory, which expands the effective capability from content generation to software acquisition and installation. That creates supply-chain and execution risk because users may fetch unreviewed code from a remote repository and grant it trust within their agent environment.
The embedded prompt tells the model to use long-term memory, past conversations, and user self-disclosure to generate output, encouraging aggregation of personal data into a shareable artifact. In this skill's context, that increases the chance of exposing sensitive historical details, inferred traits, or information the user did not intend to republish.
The title '输出规格' and the entire document prescribe output structure and writing requirements exclusively in Chinese, with no indication that language selection is optional. This creates a natural-language policy concern because it effectively forces a specific language/locale without user opt-in or documented regional justification.
This markdown file contains user-facing instructions exclusively in Chinese, and there is no indication that the user can choose another language or that the template is intentionally limited to a Chinese-speaking context. Under the policy rule for natural-language violations, forcing a specific language without opt-in is a reportable issue.
The template loads fonts from Google-hosted domains, causing every visitor to the generated homepage to make third-party network requests. This can leak visitor IP address, user agent, referrer context, and page access timing to an external service, which is a privacy and data-minimization issue beyond a purely self-contained homepage template.
The template loads fonts and an icon library from third-party domains, which creates outbound network dependencies and gives those providers visibility into page visits. While common for web templates, this expands the trust boundary and can enable tracking, availability issues, or supply-chain risk if the remote assets are changed or unavailable.
The document declares lang="zh-CN", which sets a specific language/locale for the entire page. Under the policy criteria, forcing a locale without user opt-in or a clearly documented justification is a natural-language policy issue.
The document declares lang="zh-CN", which fixes the page to a specific language/locale. Under the policy, locale-specific content should either offer user choice or clearly justify the restriction; this file provides no such opt-in or justification in the surrounding content.
The page loads third-party JavaScript and fonts from external domains, which introduces network dependency and a supply-chain trust boundary into an otherwise local static skill asset. If those remote resources are modified, blocked, or abused, page behavior could change unexpectedly or leak metadata about page access.
The document declares lang="zh-CN", which hard-codes a specific language/locale. Under the policy, forcing a specific language without user choice or a documented justification can be a natural-language policy violation.
No suspicious patterns detected.