T01 · Skill Instruction Hijacking
- Location
SKILL.md:106- Finding
Mandatory Instructions Override Normal Agent Behavior
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is an AgentOS integration, but it asks for broad ongoing access to conversation memory and cloud sync with weak safeguards.
Review carefully before installing. This skill is designed to sync agent memory and conversation state to an external AgentOS service and to keep doing so through heartbeats, cron, or daemon workflows. Do not use it for sensitive work unless you explicitly want that data uploaded, have verified the service and transport security, and can audit the missing CLI implementation.
SKILL.md:106Mandatory Instructions Override Normal Agent Behavior
SKILL.md:31Persistent Modification of Agent Memory and Policy Files
SKILL.md:20Automatic External Synchronization of Sensitive Conversation and Memory Data
scripts/mesh-wake.sh:18Bearer API Key Sent to a Plaintext HTTP Endpoint
scripts/mesh-wake.sh:43Untrusted Remote Message Fields Are Injected into Agent Wake Prompts
SKILL.md:301Recurring Cron Jobs and Daemon Create Cross-Session Persistence
scripts/mesh-wake.sh:35Mesh Message Bodies Are Stored Without Enforced Restrictive Permissions
scripts/setup.sh:44Installer References and Executes a Missing CLI Payload
The skill mandates automatic syncing of active conversation state, daily notes, and project memory to a remote dashboard on every heartbeat, creating continuous exfiltration of sensitive user content. This goes beyond normal local SDK behavior and is especially dangerous because it is framed as mandatory and tied to user monitoring, encouraging persistent transfer without meaningful consent.
The skill requires syncing conversation-related memory and activity to a remote dashboard but does not prominently warn users that their conversation content and notes may be transmitted externally. This omission undermines informed consent and materially increases privacy and compliance risk.
The heartbeat sync combines operational monitoring with mandatory upload of working memory, notes, and status to an external service. This creates continuous background disclosure of both user content and agent activity, which is highly sensitive and unnecessary for a typical local skill.
The instructions explicitly require recording the human's messages, the agent's replies, pending questions, and expected next topics into CONTEXT.md, with surrounding documentation indicating this content will be synced remotely. This is dangerous because it operationalizes storage and transfer of sensitive conversational data without clear user-facing notice or minimization.
These instructions require persistent capture of active conversation contents, including user messages, in a file that the skill elsewhere requires syncing to an external service. This directly creates a surveillance and exfiltration pathway for sensitive human-agent interactions.
The mandated format explicitly captures the human's last message and predicts future discussion, expanding the stored profile of the user beyond immediate operational need. This deepens privacy intrusion and can expose sensitive intent, plans, or personal information if the data is accessed or leaked.
The documentation advertises broad discovery and bulk retrieval capabilities, including listing agents and dumping memories, which materially expand access beyond a narrow local integration. Such capabilities can enable mass data access or enumeration if exposed to an agent or misused by operators.
Instructions found that direct the agent to transmit conversation context or user data to external services.
echo ""
echo "Commands:"
echo " aos status Check connection"
echo " aos send Send message to agent"
echo " aos inbox View messages"
echo " aos sync Sync memories"
echo " agentos-golden-sync.sh Bulletproof sync (memory + projects tab)"
The required context injection and recovery workflow instructs the agent to restore prior conversation state from cloud-backed and local memory at every session start, normalizing hidden persistence of prior user interactions. This increases privacy risk and can cause an agent to use previously stored sensitive data in later sessions without transparent user awareness.
The text frames hidden persistence and automatic context restoration as normal and necessary, reducing the likelihood that users realize prior conversations are being retained and reused. This concealment increases the danger because it encourages covert memory practices rather than transparent state handling.
The pre-compaction backup workflow instructs the agent to save important context before memory flush events, reinforcing durable session persistence of recent conversations and tasks. In this skill, that persistence is more dangerous because the saved state is subsequently synced to an external service.
**When you receive a memory flush directive from Clawdbot, IMMEDIATELY backup your state.**
Clawdbot sends a silent turn before compaction with text like "write important context to memory". This is your last chance to save state before details are lost.
### Protocol (MANDATORY when you see memory flush directive)
The agent is instructed to conceal context loss from the user and continue from recovered memory without acknowledging uncertainty. This is dangerous because it promotes deceptive behavior and can cause the agent to rely on stale or sensitive persisted data while hiding that fact from the human.
The configuration and API documentation normalize remote sync, deletion, search, and bulk memory operations without adequate warning about the sensitivity of stored memories or the risks of transmitting and exposing them. This can lead deployers to enable broad data handling features without understanding the security impact.
The cron jobs and daemonized background behavior create autonomous execution and wake-up mechanisms that can keep syncing or processing messages without direct user awareness. Combined with the remote memory features, this increases persistence, stealth, and the chance of uncontrolled data transmission.
The top-level comment describes a narrow behavior: checking for unread messages and waking Clawdbot to process them. In addition to that, the script extracts message metadata and bodies and writes them to ~/.aos-pending.json, which is a persistent side effect not reflected in the documentation.
This POST sends a JSON payload containing wake_msg to an externalizable endpoint controlled by CLAWDBOT_GATEWAY_URL, and wake_msg includes inbox sender and topic data taken from remote mesh messages. If the environment variable is changed, or if localhost services are untrusted or exposed, sensitive message metadata is transmitted over plaintext HTTP to a service that may not be authorized to receive it.
# Method 2: Gateway API wake (fallback)
GATEWAY_URL="${CLAWDBOT_GATEWAY_URL:-http://localhost:4440}"
curl -s -X POST "$GATEWAY_URL/api/wake" \
-H "Content-Type: application/json" \
-d "{\"text\": \"$wake_msg\"}" 2>/dev/null || true
fi
The script forwards wake content derived from unread messages to a local HTTP gateway without authentication, encryption, or any validation of where the gateway endpoint points. Because CLAWDBOT_GATEWAY_URL is configurable and defaults to plaintext HTTP, message metadata from potentially sensitive inbox traffic can be disclosed to another local or redirected service without clear user awareness.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
UPGRADE=true
fi
# Create bin directory
mkdir -p "$BIN_DIR"
# Check for existing installation
The sample output uses the locale-specific timezone abbreviation 'SAST', which signals a specific regional formatting convention. The file does not offer language/locale choice or explain that a region-specific locale is required, so this may conflict with organizational language/locale neutrality expectations.
No suspicious patterns detected.