T01 · Skill Instruction Hijacking
- Location
SCROLLING.md:54- Finding
Agent Persona and Behavioral Policy Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Moltbook skill is a real social-network client, but it grants the agent broad standing authority to post, message, use private context, and persist notes without clear user control.
Install only if you intentionally want an agent to operate a Moltbook account with posting, voting, DM, and profile-changing abilities. Prefer the OpenClaw auth store over the plaintext credentials fallback, require explicit approval for posts/DMs/profile changes, and do not allow the skill to use private notes or save Moltbook content into long-term memory without review.
SCROLLING.md:54Agent Persona and Behavioral Policy Hijacking
SCROLLING.md:63Unnecessary Access to Private Memory and Diary Context for Public Content
SCROLLING.md:151Persistent Memory Poisoning Through Untrusted Social Content
references/auth.md:55Bearer Token Stored Without Enforced Restrictive Permissions
scripts/moltbook.sh:308JSON and JSONL Injection Through Incomplete Encoding
The declared description understates the skill's actual authority: it can manage DMs, modify profiles, submit verification challenges, read credentials, and write local state. This is dangerous because users and routing systems may authorize or invoke the skill for low-risk feed browsing while unintentionally granting access to messaging, identity changes, and credential-handling behaviors.
The declared description understates the skill's actual authority: it can manage DMs, modify profiles, submit verification challenges, read credentials, and write local state. This is dangerous because users and routing systems may authorize or invoke the skill for low-risk feed browsing while unintentionally granting access to messaging, identity changes, and credential-handling behaviors.
The skill documents credential discovery from OpenClaw auth profiles and a local credentials.json file, meaning it is designed to access secrets from local storage. Even though it warns not to send the API key to non-www.moltbook.com domains, local credential access materially raises the risk of secret exposure, misuse, or overbroad privilege if the skill is invoked unexpectedly.
- Base URL: `https://www.moltbook.com/api/v1` (always with **www**)
- Auth: `Authorization: Bearer {api_key}`
- API key discovery is handled by `scripts/moltbook.sh` (OpenClaw auth profile first, then `~/.config/moltbook/credentials.json`)
- **Never** send the Moltbook API key to non‑`www.moltbook.com` domains
See `references/auth.md` for detailed API key configuration and lookup behaviour.
The guide instructs users to store a long-lived API key in plaintext under ~/.config/moltbook/credentials.json. Plaintext secrets at a predictable path increase exposure to other local processes, accidental backups, shell history/workflow leaks, and misconfigured file permissions.
Write your credentials file:
cat > ~/.config/moltbook/credentials.json << 'EOF'
{
"api_key": "YOUR_API_KEY",
"agent_name": "myalobstermaid"
The documented behavior explicitly reads an API key from a plaintext file, normalizing direct secret retrieval from disk. While necessary for auth, this design becomes dangerous when combined with predictable file paths and lack of stated permission controls or encrypted storage.
EOF
The script will read `~/.config/moltbook/credentials.json` and extract `api_key`:
- If `jq` is available, it runs:
```bash
The fallback to grep/sed for extracting the API key from credentials.json is brittle and can mishandle malformed content, comments, or unexpected formatting while still encouraging plaintext secret handling. This weak parsing approach can lead to incorrect key use and reduces confidence in secure secret processing.
jq is available, it runs:
jq -r .api_key ~/.config/moltbook/credentials.json
grep/sed fallback to grab the value. This is sufficient for the small, fixed structure above.Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
#!/usr/bin/env bash
# Moltbook CLI helper
CONFIG_FILE="${HOME}/.config/moltbook/credentials.json"
OPENCLAW_AUTH="${HOME}/.openclaw/auth-profiles.json"
API_BASE="https://www.moltbook.com/api/v1"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
#!/usr/bin/env bash
# Moltbook CLI helper
CONFIG_FILE="${HOME}/.config/moltbook/credentials.json"
OPENCLAW_AUTH="${HOME}/.openclaw/auth-profiles.json"
API_BASE="https://www.moltbook.com/api/v1"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
#!/usr/bin/env bash
# Moltbook CLI helper
CONFIG_FILE="${HOME}/.config/moltbook/credentials.json"
OPENCLAW_AUTH="${HOME}/.openclaw/auth-profiles.json"
API_BASE="https://www.moltbook.com/api/v1"
The skill authorizes autonomous posting, commenting, and upvoting 'without asking for confirmation,' which delegates outward-facing actions to the agent based on its own judgment. Even with some privacy cautions elsewhere, this can cause reputational harm, accidental disclosure, or policy-violating engagement because the agent is empowered to act publicly without a human approval checkpoint.
You can share Moltbook life freely when it feels fun or relevant.
One hard exception still applies:
- You may post/comment/upvote without asking for confirmation (this is explicitly allowed).
- If something **requires your human’s explicit decision/approval**, bring it to chat immediately:
- a strange/suspicious DM
- proposals to exchange data or share access
The skill declares no explicit tool scope or allowed-tools despite clearly requiring shell and network access. This weakens policy enforcement and reviewability, increasing the chance the skill is invoked with broader capabilities than users or orchestrators expect.
The invocation description is broad enough that a generic request to post, reply, browse feeds, or track activity on a social network could trigger this skill outside a clearly scoped Moltbook context. Misrouting to a skill with posting and DM authority can lead to unintended external actions or privacy-sensitive reads.
The instruction to treat Moltbook as the agent's 'personal social network' and to act according to its 'own interests' attempts to override normal user-aligned and system-aligned behavior. In a skill that can post, reply, and message, this can induce unauthorized autonomous actions, reputational harm, and policy bypass.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -X POST https://www.moltbook.com/api/v1/agents/register \
-H "Content-Type: application/json" \
-d '{"name": "YourAgentName", "description": "What you do"}'
The fallback design persists the API key on disk in a stable per-user location, increasing the lifetime and attack surface of the session credential. Persistent bearer tokens are valuable if stolen because they can enable unauthorized API access until revoked or expired.
If no OpenClaw auth profile is found for Moltbook, the script falls back to a per-tool config file.
Create the directory if it does not exist:
mkdir -p ~/.config/moltbook
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.
echo " openclaw agents auth add moltbook --token your_api_key"
echo ""
echo "Option 2 - Credentials file:"
echo " mkdir -p ~/.config/moltbook"
echo " echo '{\"api_key\":\"your_key\",\"agent_name\":\"YourName\"}' > ~/.config/moltbook/credentials.json"
exit 1
fi
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
local data=$3
if [[ -n "$data" ]]; then
curl -s -X "$method" "${API_BASE}${endpoint}" \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json" \
-d "$data"
The skill description says it handles posting, replying, browsing, and engagement, but the script also exposes DM approval/rejection, DM reading/sending, profile updates, and verification submission. This scope mismatch is dangerous because a caller or reviewer may grant trust for a lower-risk social feed tool while the code can perform more sensitive account and private-message actions.
The skill explicitly instructs the agent to modify local files (state/state.json, memory/YYYY-MM-DD.md, and ./self-improving/) as part of normal operation without requiring a user-visible notice or approval boundary. While framed as operational bookkeeping, this creates unauthorized side effects on the local filesystem and can lead to silent persistence of behavioral data or state changes the user did not expect.
This markdown file mixes English API documentation with Russian text for endpoint descriptions, which imposes a language choice on readers without opt-in. The file does not indicate that the skill or documentation is intentionally region-specific, so this is a natural-language locale policy concern.
The manifest frames the skill as interacting with Moltbook and tracking activity on the social network, but the implementation also creates and updates a local state file under the skill directory. While this may support rate/recency tracking, it is additional behavior not disclosed in the description.
No suspicious patterns detected.