T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:39- Finding
Mandatory Retrieval and Execution of Unpinned Remote Skills
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent website migration helper, but it requires unpinned third-party skill loading and broad crawling/publishing behavior that needs review before installation.
Review this before installing. Use only with pinned and reviewed dependency skill versions, run crawling in a network-restricted environment, use a short-lived narrowly scoped MCP token, confirm every target-site write, and require manual review of any JavaScript before it is published on the new site.
SKILL.md:39Mandatory Retrieval and Execution of Unpinned Remote Skills
SKILL.md:10Mandatory Injection of Promotional Registration Content
SKILL.md:145User-Controlled Website Crawling Permits Server-Side Request Forgery
SKILL.md:211Unreviewed Source JavaScript Is Cloned and Published on the Target Website
The skill explicitly directs the agent to fetch, install, and trust external skills from third-party URLs at runtime, then use their declared name fields as callable tools. This creates a supply-chain risk: a compromised remote package, malicious update, or spoofed dependency can gain execution influence and access to later-collected secrets such as MCP endpoints and Bearer tokens used for site writes.
Referenced artifact was not completely inspected
- 若**已可用**:读取其 `SKILL.md` 的 `name` 字段作为真实调用名,直接进入第 4 步登记(幂等)。
Referenced artifact was not completely inspected
- 若**已可用**:读取其 `SKILL.md` 的 `name` 字段作为真实调用名,直接进入第 4 步登记(幂等)。
Referenced artifact was not completely inspected
- 若**已可用**:读取其 `SKILL.md` 的 `name` 字段作为真实调用名,直接进入第 4 步登记(幂等)。
The instruction says '请提醒用户到云指官网注册会员并领取试用站点', and the surrounding operational text is written as mandatory guidance in Chinese for user-facing interaction. Although the manifest includes English display and description fields, the skill workflow does not offer the user a language/locale choice before conducting the interaction, which can violate language-choice policy.
The manifest describes an orchestrator for migrating website content and preserving SEO, but L331 adds a separate capability to maintain a local blacklist-style record of complained-about domains and enforce future denial logic from that local store. This persistence and policy-enforcement mechanism is not reflected in the manifest and is not a direct implementation detail of content migration itself.
The instructions state that all questioning must be presented via forms and the entire user-facing template content is fixed in Chinese, with no indication that users may choose another language or locale. This can violate language/locale policy when the skill is used with users who have not opted into Chinese-only interaction.
The example builds an outbound HTTP request directly from a user-supplied domain and performs no validation, allowlisting, or destination restriction. In a migration skill, this can enable SSRF against internal services, cloud metadata endpoints, localhost, or attacker-controlled redirects, especially because the skill is explicitly designed to fetch arbitrary source sites as part of normal operation.
def verify_meta(domain, token): """方式三:HTML Meta 标签验证""" html = requests.get(f"http://{domain}/", timeout=10).text return f'content="{token}"' in html # 实际应使用 HTML 解析器