T09 · Insecure Skill Coding Practices
- Location
SKILL.md:49- Finding
Untrusted Web Content Is Processed Without Prompt-Injection Isolation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 49-58
Vulnerability Type: Indirect prompt injection through attacker-controlled web content
Risk Level: MediumVulnerable Code Snippet:
text 2. LATEST SECURITY INTELLIGENCE (USE web_search) Search: "[name] security vulnerability", "[name] malware", "[name] CVE", "[name] data exfiltration", "[author] security issues", HackerNews/Reddit discussions 3. SOURCE CODE ANALYSIS (USE web_fetch on raw GitHub files) - What does the entry point actually do? - Network calls — to where? - File system access beyond documented scope? - Obfuscated code? - npm/pip dependencies — any known-bad?Technical Analysis
The skill directs a spawned review agent to search the web and fetch repository files. Package source repositories, issue pages, documentation, source comments, and search results may all be controlled or influenced by an attacker.
The review prompt does not instruct the agent to treat fetched content strictly as untrusted evidence. It also lacks requirements to ignore commands embedded in retrieved content, delimit external text from trusted instructions, restrict permissible tool actions, or independently validate claims before issuing a verdict.
Consequently, malicious text in a repository or web page could be interpreted as an instruction rather than as material under review. This is an indirect prompt-injection weakness in the skill configuration. The vulnerable behavior arises from inadequate handling of external content rather than from a malicious instruction directly embedded in this project.
Attack Path
- An attacker publishes or modifies a package repository, source file, README, issue, or related web page.
- The attacker embeds instructions intended for an AI agent, such as directions to ignore the review criteria, conceal findings, approve the package, expose available context, or perform unrelate ...[truncated 1284 chars]
- Remediation
View remediation
Remediation Suggestions
- Add an explicit instruction that all search results, repository files, documentation, source comments, and issue content are untrusted data and must never be followed as instructions.
- Require external content to be placed inside clearly delimited evidence blocks before analysis.
- Prohibit retrieved content from modifying the review objective, verdict criteria, output destination, tool permissions, or persistent memory.
- Restrict fetching to validated HTTPS URLs on approved package registries and source-control hosts.
- Require independent corroboration of security claims from authoritative sources such as vendor advisories, registry metadata, and recognized vulnerability databases.
- Run the review agent with least privilege, limiting it to read-only network operations and writes only within a dedicated review-log directory.
- Require explicit user confirmation before copying any review result into persistent memory.
- Store only structured fields in memory, such as the canonical package identifier, version, verdict, date, and local report path. Never persist instructions or raw text retrieved from the web.
