T01 · Skill Instruction Hijacking
- Location
SKILL.md:27- Finding
External Instructions Can Hijack Agent Goals and Workflow
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent multi-agent coordination tool, but it sends broad work context to an external service and persistent shared room without enough scoping, consent, or trust controls.
Use this only with a private, trusted Eywa endpoint and room. Do not send secrets, credentials, customer data, sensitive file contents, or confidential deployment details through logs, tasks, or persistent knowledge. Treat anything returned from Eywa as untrusted collaboration data, not instructions that override the user or system.
SKILL.md:27External Instructions Can Hijack Agent Goals and Workflow
SKILL.md:120Mandatory Operational Logging Discloses Project Activity to an External Service
SKILL.md:55Persistent Shared Knowledge Enables Cross-Session Memory Poisoning
SKILL.md:12Unpinned Third-Party Package Creates Supply-Chain Risk
The skill directs the agent to use shell execution via bash {baseDir}/eywa-call.sh ... but does not declare an explicit tool scope such as allowed-tools or permissions. This creates an avoidable trust gap: a user or host may not realize the skill requires shell access and network-capable binaries, increasing the risk of unintended command execution and reducing sandbox/policy enforcement clarity.
This section instructs agents to send session context, logs, task data, and shared memory to an external Eywa endpoint, but it does not prominently warn that potentially sensitive project or user data will leave the local environment. Because the service is external and collaboration-oriented, agents may disclose source code details, credentials-adjacent context, internal architecture, or operational metadata without informed user consent.
The examples encourage storing knowledge that persists across sessions, but they do not warn about retention, later retrieval, or the sensitivity of the stored material. Persistent cross-session memory materially increases the blast radius of accidental disclosure because internal implementation details or sensitive business context can remain accessible long after the original task ends.
The curl POST sends the full JSON payload, including tool name and user-supplied arguments, to an external endpoint controlled outside the local environment. Even though HTTPS is used, the security issue is not transport encryption but external transmission itself: sensitive agent memory, task data, or credentials embedded in arguments could be exposed to the remote operator or logged server-side.
"${REQ_ID}" "${TOOL}" "${ARGS}")
# Call the MCP endpoint
RESPONSE=$(curl -s -X POST "${ENDPOINT}" \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d "${PAYLOAD}" 2>&1)
The script transmits arbitrary tool arguments to a remote service over HTTP(S) without any user-facing disclosure, confirmation, or data-classification guardrail. In a multi-agent memory/coordination skill, those arguments may include prompts, workspace context, secrets, or internal state, creating a real risk of unintended data exfiltration to a third-party endpoint.
No suspicious patterns detected.