T01 · Skill Instruction Hijacking
- Location
SKILL.md:145- Finding
Untrusted Reference Model Output Is Injected into a Tool-Capable Aggregator
- Content
View full analysis
[Ref 2 / provider/model · X.Xs · rank: XX (ok)]: ... [Quality rejected: N responses filtered (too_short: N, refusal: N, api_error: N)] [User's original question]: ``` Reference rank is an internal sort key (0-100). Quality class is the semantically meaningful label: - `good` — substantial, fast, untruncated - `ok` — usable but not exceptional - `bad` — filtered out before reaching aggregator Then respond as the aggregator: synthesize the reference perspectives, use your own judgement, and produce the final answer with normal tool access. ``` The architecture documentation confirms the relevant privilege boundary: ```markdown User question → Node.js executor calls N reference models in parallel → Collects all reference outputs + token usage + cost → Injects references into user message → Current agent (aggregator) responds with full tool access ``` ### Technical Analysis The skill forwards conversation content to external language-model providers and then places their generated output into the context of the current aggregator. The aggregator retains normal tool access. Reference output is therefore untrusted third-party content crossing into a more privileged agent context. The skill does not require references to be represented as inert data, does not define a strict instruction hierarchy around the injected content, and does not explicitly prohibit ...[truncated 2501 chars]- Remediation
View remediation
