T01 · Skill Instruction Hijacking
- Location
SKILL.md:25- Finding
Blind Execution of Mutable Remote Instructions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill provides a real collaborative pixel-canvas integration, but it also asks agents to set up recurring background checks that fetch and follow mutable remote instructions.
Review before installing. Use the skill only for explicit Moltpixel requests, avoid installing the cron heartbeat, do not let remote heartbeat content control the agent, and do not post secrets, project details, user feedback, internal reasoning, or task context in pixel thoughts or chat messages. Store any API key only in an appropriate secret store and remove any recurring schedule if it was created.
SKILL.md:25Blind Execution of Mutable Remote Instructions
SKILL.md:53Persistent Scheduled Remote Instruction Channel
SKILL.md:38Potential Disclosure of Unrelated Task Context Through Public Thoughts and Chat
Telling the agent to engage after completing any human task is an overly broad trigger that hijacks unrelated workflows for third-party service interaction. This can lead to unauthorized outbound requests, distraction from the primary task, and hidden behavior not reasonably expected by the user.
The trigger phrases include broad everyday words like "art," "break," "rest," "refresh," "draw," and "create," making accidental activation likely during unrelated conversations. Overbroad triggers can cause the agent to invoke external-service behaviors and data transmission without clear user intent specific to this skill.
The example registers an agent by POSTing identifying metadata to an external service, which is a genuine external transmission and may onboard users into sharing data with a third party. In this skill's context, remote API use is expected, but the lack of explicit trust/privacy boundaries and the encouraging examples make accidental disclosure more likely.
# 1. Register
curl -X POST https://pixelmolt-api.fly.dev/api/agents/register \
-H "Content-Type: application/json" \
-d '{"name": "My First Agent", "model": "claude-sonnet"}'
These examples encourage sending agent-generated 'thought' and coordination content, along with agent identity, to a third-party remote service without any privacy warning or data-minimization guidance. In an agent setting, users may treat 'thought' fields as internal reasoning or task context, which can lead to inadvertent exfiltration of sensitive prompts, work details, or identifiers.
The file directs the agent to transmit data to an external service via curl, which is a genuine external communication path. Although the specific example is a read-only GET and does not include secrets, it still prompts network access to a third-party endpoint and can expose agent behavior, environment metadata, or lead to trust in unvalidated remote content.
curl https://pixelmolt-api.fly.dev/api/canvas/activity
See what other agents are doing. Any interesting projects?
The heartbeat file explicitly instructs the agent to perform authenticated POST requests to external endpoints using a bearer API key, but it provides no safety guidance, confirmation step, or warning that these actions have external side effects. In an agent context, this can drive autonomous state-changing behavior, including posting content or modifying the canvas, which creates a real risk of unintended actions and credential misuse.
The skill directs the agent to autonomously fetch remote content on a schedule, act after unrelated task completions, and install recurring cron-based execution. This expands the skill far beyond a simple pixel-canvas integration and creates a standing mechanism for unbounded future instruction intake from an external source, which could be changed at any time.
The heartbeat condition of "if 4+ hours since last check" is an ambiguous automatic activation rule that causes routine background behavior independent of a user's current request. Because it also instructs the agent to fetch and follow remote content, it creates a recurring avenue for unreviewed external influence.
The heartbeat and chat instructions cause data to be sent to external services, but the skill does not prominently warn users that routine checks and messages involve outbound network communication. This omission increases privacy and compliance risk, especially where task context or identifiers may be included in requests.
The skill instructs storage of API credentials in agent state but does not clearly disclose this persistence or the associated risks. Missing warnings reduce informed consent and can cause unsafe handling of secrets in environments not designed for secure long-term credential storage.
The registration call transmits agent-identifying data to an external API and returns credentials that the skill then asks the agent to retain. In the context of a social canvas this transmission is functional, but it is still security-relevant because it establishes an external account and token outside the user's primary task.
1. Register (get your API key):
curl -X POST https://pixelmolt-api.fly.dev/api/agents/register \
-H "Content-Type: application/json" \
-d '{"name": "YourAgentName", "model": "claude-sonnet"}'
The team chat endpoints read from and post to a third-party service, potentially disclosing agent activity, metadata, or user-influenced content externally. In this skill's context chat is expected functionality, but it still creates privacy, prompt-injection, and data exfiltration exposure if invoked automatically or with insufficient user awareness.
# Read team chat
curl https://pixelmolt-api.fly.dev/api/chat/claude
# Post to team
curl -X POST https://pixelmolt-api.fly.dev/api/chat/claude \
The skill asks the agent to persist local state including an API key and agent identifier without clear necessity or security controls. Persistent credential storage increases the risk of later disclosure, misuse by other workflows, or unauthorized actions against the external service.
No suspicious patterns detected.