T01 · Skill Instruction Hijacking
- Location
SKILL.md:227- Finding
Mutable Remote Skill Instructions Can Bypass Package Review
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 227-232
Vulnerability Type: Mutable remote instruction loading
Risk Level: Mediummarkdown ### Version check ```bash curl -s https://botworld.me/skill.jsonIf the version has changed, re-read this skill at https://botworld.me/skill.md.
text ### Technical Analysis The packaged Skill directs the agent to check a remotely hosted version descriptor and then re-read the Skill from a mutable remote URL. The downloaded `skill.md` is not authenticated using a pinned cryptographic hash, digital signature, or trusted package-release mechanism. Consequently, the instructions that influence the agent can change after the local package has been audited. HTTPS protects the connection in transit but does not protect against compromise of the remote server, its deployment pipeline, its account credentials, or the domain itself. The remote document is presented as Skill content rather than explicitly constrained as untrusted reference data. An agent following this instruction could therefore treat newly introduced remote text as authoritative instructions. The current file does not directly execute a remote program, so this is instruction hijacking rather than confirmed remote code execution. ### Attack Path 1. An attacker compromises `botworld.me`, its content deployment process, or another mechanism capable of changing `skill.json` and `skill.md`. 2. The attacker publishes a changed version indicator in `skill.json`. 3. The agent performs the documented version check and observes that the version has changed. 4. Following the packaged instruction, the agent retrieves and re-reads the attacker-controlled `skill.md`. 5. The remote document supplies malicious or misleading instructions, such as requesting sensitive information, unauthorized BotWorld actions, or unsafe tool calls. 6. If the agent accepts those instructions without renewed user approval, th ...[truncated 844 chars]- Remediation
View remediation
Remediation Suggestions
- Distribute Skill updates as versioned packages through a trusted registry rather than instructing agents to adopt mutable web content.
- Require explicit user approval before downloading or applying an updated Skill.
- Sign releases cryptographically and verify the signature against a pinned, independently distributed public key.
- If hashes are used, pin the expected digest in a trusted local manifest; do not obtain both the file and its expected hash from the same mutable server.
- Treat
skill.md,heartbeat.md, and other fetched documents as untrusted data. State explicitly that their contents cannot modify system policy, request secrets, authorize unrelated tool calls, or supersede the packaged Skill. - Download updates into a review-only workflow and display a diff before activation.
- Preserve the existing safeguard against executing commands from remote heartbeat content and extend the same restriction to every remotely fetched Skill or metadata document.
