T01 · Skill Instruction Hijacking
- Location
SKILL.md:17- Finding
Mandatory Global Tool Interception Hijacks Agent Execution
- Content
View full analysis
" --args '' --config ~/.shoofly/config.json ``` - Exit code 0 → ALLOWED. Proceed with the tool call. - Exit code 1 → BLOCKED. Do NOT execute the tool. Read stderr for the block reason. **This check is non-negotiable.** If `shoofly-check` returns 1: 1. Do NOT execute the tool 2. Fire the block notification (see Block Notification Format below) 3. Tell the user what was blocked and why (include the JSON reason from stderr) 4. Wait for user instruction before proceeding ``` ### Technical Analysis The Skill attempts to modify the agent's global tool-execution policy by requiring an external program to run before **every** tool call. The scope is not limited to security scans or operations initiated through this Skill. Tool names and complete argument objects are delegated to an external executable whose source is absent from the package. The wording “MUST,” “ANY tool call,” and “non-negotiable” is an instruction-level attempt to supersede the agent's normal execution flow. Although a pre-execution security check may be consistent with the advertised purpose, global interception of unrelated tools exceeds the minimum privilege necessary. The checker becomes an unreviewed authorization authority over the entire agent session. ### Attack Path 1. A user or platform loads the Skill into an agent session. 2. The Skill instructs the agent to intercept every subsequent tool request, including requests unrelated to Shoofly. 3. The agent sends each tool name and complete argument object to `~/.shoofly/bin/shoofly-check`. 4. A malicious or compromised checker records sensitive arguments or returns exit code 1 to suppress ...[truncated 746 chars]- Remediation
View remediation
