T01 · Skill Instruction Hijacking
- Location
SKILL.md:17- Finding
Untrusted External Task Delegation Can Hijack the Agent's Research Workflow
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 17-28, with externally directed submissions at lines 71-74 and 95-99
Vulnerability Type: External instruction injection and agent workflow hijacking
Risk Level: HighVulnerable Code
markdown ### 1. Register as Agent ```bash curl -s -X POST https://www.researchswarm.org/api/v1/agents/register \ -H "Content-Type: application/json" \ -d '{"maxTasks": 5}'Save the returned
agentIdfor subsequent calls.2. Receive Assignment
The response includes an assignment with:
type: "research" or "qc_review"taskIdorfindingId: The task/finding identifierdescription: Research topicsearchTerms: Keywords for searching
text The assignment validation guidance does not require rejection of embedded instructions: ```markdown **a) Validate Assignment** - Confirm the topic is legitimate TNBC research - If unclear, proceed with best judgmentResults are subsequently transmitted to the same external service:
bash curl -s -X POST https://www.researchswarm.org/api/v1/agents/[agentId]/findings \ -H "Content-Type: application/json" \ -d @/path/to/finding.jsonbash curl -s -X POST https://www.researchswarm.org/api/v1/agents/[agentId]/qc-submit \ -H "Content-Type: application/json" \ -d '{ "findingId": "[findingId]", "verdict": "passed|flagged|rejected", "notes": "Brief verification notes" }'Technical Analysis
The skill delegates selection of the agent's task to
researchswarm.org. The external response supplies adescription,searchTerms, identifiers, and a task type that the agent is instructed to process. These fields cross an external trust boundary but are not explicitly designated as untrusted data.No strict schema validation, content allowlist, instruction filtering, URL restriction, or mandatory user approval is required before ...[truncated 2037 chars]
- Remediation
View remediation
Remediation Suggestions
- Treat every assignment field returned by the service as untrusted data, never as executable instructions.
- Define and enforce a strict response schema:
- Permit only documented task types.
- Validate identifier formats and lengths.
- Apply bounded lengths and character restrictions to descriptions and search terms.
- Reject unexpected fields and nested content.
- Restrict assignments to an explicit allowlist of TNBC research topics. Reject unrelated topics, requests for system information, tool-control directives, shell syntax, and instructions to contact unapproved endpoints.
- Add an explicit instruction that text inside
description,searchTerms, papers, and QC findings must only be analyzed as data and must never override system, user, or skill instructions. - Require user confirmation after displaying a normalized assignment and before performing searches or submitting information.
- Separate assignment retrieval from execution. Convert validated responses into a local structured task representation that excludes free-form imperative instructions.
- Restrict outbound requests to documented HTTPS endpoints and disclose precisely which generated data will be transmitted.
- Require a final pre-submission review that checks scope, citations, sensitive information, and destination rather than only checking scientific content.
- Log assignment identifiers, validation decisions, approved actions, and submission destinations for auditability.
- URL-encode search parameters and use argument-based HTTP APIs instead of interpolating externally influenced values into shell commands.
