Back to skill

Security audit

ADHD Body Doubling

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent ADHD body-doubling productivity tool with disclosed local session history, though users should understand that task and focus-session details may be saved locally.

Before installing, be aware that focus-session details such as task descriptions, micro-steps, energy level, and outcomes may be saved locally under ~/.openclaw/skills/adhd-body-doubling/history/. Avoid entering confidential task details unless you are comfortable retaining them there, and periodically review or delete that directory if you do not want history kept.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Note
Location
scripts/start-session.sh:112
Finding

Incomplete JSON Escaping Permits Persistent Session Record Corruption

Content
View full analysis
"$SESSION_FILE" << EOF { "session_id": "$SESSION_ID", "version": "2.0", "timestamp": "$TIMESTAMP", "time_of_day": "$TIME_LABEL", "duration_planned": $DURATION, "duration_actual": null, "task_category": "$TASK_CATEGORY", "task_description": "$TASK_ESC", "first_microstep": "$MICROSTEP_ESC", "smallest_step": "$SMALLEST_ESC", "energy_start": ${ENERGY_START:-5}, "energy_end": null, "completion_rate": null, "what_worked": [], "what_didnt": [], "dopamine_menu_used": null, "check_ins_completed": 0, "aborted": false, "revenue_impact": null, "check_ins": [] } EOF ``` ### Technical Analysis The custom `json_escape` function escapes backslashes, double quotes, and tab characters, but does not correctly encode every character that JSON prohibits inside an unescaped string. Relevant omissions include carriage returns and other control characters in the U+0000–U+001F range. Because the escaped values are inserted directly into a manually constructed JSON document, accepted control characters can make the resulting session file syntactically invalid. Escaping double quotes prevents a straightforward property-boundary escape, so arbitrary JSON property injection or code execution is not demonstrated by the reviewed co ...[truncated 1563 chars]
Remediation
View remediation
"$SESSION_FILE" ``` 2. If adding `jq` is undesirable, implement complete JSON string encoding for every U+0000–U+001F control character rather than maintaining a partial substitution list. 3. Validate the completed document before retaining it: ```bash jq empty "$SESSION_FILE" ``` 4. Write to a temporary file in the destination directory, validate it, and atomically rename it to `SESSION_FILE`. This prevents incomplete records from remaining after serialization or validation failures. 5. Protect potentially sensitive task descriptions by creating history files with restrictive permissions: ```bash umask 077 mkdir -p "$SESSION_DIR" ``` 6. Add regression tests covering quotes, backslashes, tabs, carriage returns, and other control characters. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (11)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README explicitly states that session history is stored under a persistent local path, but it does not warn users that this may include sensitive productivity patterns, task descriptions, routines, or business-related notes. In the context of an ADHD accountability skill, users are likely to enter personal or commercially sensitive information, so undocumented persistence meaningfully increases privacy and confidentiality risk.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger description contains broad, common phrases such as 'I can't focus', 'help me start', and 'I'm stuck', which can match many ordinary conversations and cause the skill to activate unintentionally. In a skill that pushes structured behavior and may initiate persistence/history features, accidental activation can lead to inappropriate responses and unnecessary collection of user productivity context.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill advertises 'session history tracking' but does not clearly warn users up front that potentially sensitive behavioral and productivity data may be persisted. Because the tracked fields include task category, energy levels, completion patterns, and what worked or failed, users could disclose sensitive personal or work-related information without informed consent.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
88% confidence
Finding

The skill explicitly stores session history under a local path and describes retaining structured details about user work habits and session outcomes. Even if intended as a productivity feature, this creates a real data-retention risk because it may preserve sensitive personal, health-adjacent, or business information without clear consent, access controls, or deletion guidance.

Content

Scanner excerpt · SKILL.md (reported line 114)May include surrounding context.

md
You're not stuck - you just haven't found the entry point yet.

MICRO-TASK OPTIONS:
1. Write ONE sentence/line of the thing
2. Open the file/app and stare at it for 60 seconds
3. List 3 things you DON'T need to do for this task
4. Do the part you know how to do, skip the hard part

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

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.

Content

Scanner excerpt · references/protocols.md (reported line 99)May include surrounding context.

md
"What's something you could do in 2 minutes that moves this forward?"

### Entry Point Options
1. **Write ONE** - One sentence, one line, one bullet
2. **Open and stare** - Open the file/app, look for 60 seconds
3. **List the NOTs** - 3 things you DON'T need to do for this task
4. **Do the easy part** - Skip the hard part, do what you know

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The protocol explicitly instructs persistent storage of detailed behavioral and productivity data, including task descriptions, energy levels, blockers, and patterns, but provides no consent, retention, minimization, or access-control guidance. In an ADHD coaching context this data can be highly sensitive and could expose mental-health-adjacent traits, work habits, and private task content if stored or later reused insecurely.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

These instructions direct the agent to persist rich user-supplied session data over time, including task info, context, outcomes, blockers, and reset usage, without privacy safeguards. Persistent collection increases the blast radius of any compromise and creates risk of profiling or unintended exposure of sensitive personal or work information.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The help text advertises an ROI/revenue tracking mode that is not described in the manifest, indicating undeclared collection or processing of business-sensitive data. Even if not overtly malicious, hidden monetization or revenue tracking features increase privacy and trust risk because users are not told up front that financial-adjacent session data may be handled.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The script writes a JSON file containing detailed free-form user input, task descriptions, micro-steps, energy levels, and session metadata to disk without an explicit warning at collection time. In this skill context, users may enter sensitive work items, personal struggles, or confidential project details, so silent persistence materially increases privacy and confidentiality risk.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The script creates a persistent history directory under the user's home folder and later stores detailed session data there, including task descriptions and self-reported energy state. In a body-doubling skill, this expands behavior from ephemeral coaching into local data retention, which can expose sensitive productivity, work, or health-adjacent information without clear consent or retention controls.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The help output advertises a '/body-doubling founder' command for premium information and repeatedly brands the ADHD-founder.com ecosystem. Promotional or premium-information surfacing is not an obvious requirement for helping users focus, start tasks, or run accountability sessions.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.