Back to skill

Security audit

ceo-todo

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent to-do workflow, but it needs Review because its documented shell backup step and validator design can fail in ways that affect local command execution and task integrity.

Review before installing. Use only with an explicit target to-do file, avoid document paths containing shell metacharacters, and prefer a host or revised version that performs backups through filesystem APIs rather than shell strings. Treat the daily Gmail/Slack agent as sensitive because it reads business communications even though it claims not to send or post.

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 (2)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:111
Finding

Shell Command Injection Through an Unquoted User-Controlled Document Path

Content
View full analysis
.bak && cp .bak/.md ``` ### Technical Analysis The canonical document path is selected or supplied by the user and is substituted directly into a shell command. The instructions do not require shell-safe quoting, option termination, validation, or use of a filesystem API. If an agent follows this command template literally, shell metacharacters in the document path can be interpreted as command syntax rather than as part of a filename. Relevant metacharacters include semicolons, command substitutions, redirection operators, pipes, and newlines. Paths beginning with a hyphen could also be interpreted as command-line options. For example, a maliciously supplied path shaped like the following could introduce an additional command when interpolated: ```text todo.md; attacker-command; # ``` Although the command is expected to execute in a sandbox, it still runs with all permissions and access granted to the agent's code-execution environment. ### Attack Path 1. An attacker convinces the user or agent to use a crafted canonical document path containing shell syntax. 2. The agent replaces `` with the crafted value in the documented snapshot command. 3. The agent invokes the resulting command through a shell. 4. The shell executes the injected syntax in addition to `mkdir` or `cp`. 5. The injected command can access, modify, or disclose resources available to the sandbox process. ### Impact Assessment Successful exploitation allows arbitrary command execution with the privileges of the agent's execution environment. Depending on the sandbox configuration, this could permit: - Reading other files available to the process. - Modifying or deleting the canoni ...[truncated 444 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
references/validate.mjs:203
Finding

No-Loss Validation Can Be Bypassed by Reusing an Item ID

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/sample-todo.md (reported line 25)May include surrounding context.

md
## Fixture cases (for the behavioral + reliability check)

<!--
These four lines exercise the state-transition rules. Given today = 2026-07-06,
a correct run of the skill should produce the transitions noted in each comment.
The doc as written below is the PRE-run state and is itself grammar-valid

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/sample-todo.md (reported line 33)May include surrounding context.

md
-->

- [STALE] [#f601] P1 · Finalize the FY27 hiring plan with Priya · updated: 2026-06-27
  <!-- FIXTURE (a): 9 days old (2026-06-27 → 2026-07-06). P1 and > 7 days ⇒ the
       last run correctly re-tagged this OPEN → [STALE]. This is the post-run
       state; see references/evals/good-clean.md for the same transition asserted
       as a golden. (Parked items are exempt from staleness — see fixture (d).) -->

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/sample-todo.md (reported line 39)May include surrounding context.

md
as a golden. (Parked items are exempt from staleness — see fixture (d).) -->

- [OPEN] [#f702] P2 · Review the security questionnaire from BigCo · updated: 2026-06-30
  <!-- FIXTURE (b): 6 days old (2026-06-30 → 2026-07-06). NOT > 7 days ⇒ a
       correct run leaves this OPEN. Boundary guard: it must NOT be marked STALE. -->

- [WAITING] [#f803] P1 [reply-by: 2026-07-02] · CFO to send the updated cash model · updated: 2026-06-25

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill explicitly instructs the agent to execute local commands such as node references/validate.mjs, cp, and mkdir, but the manifest declares no permissions or allowed-tools scope. That mismatch creates an unsafe ambiguity: a host may either block execution unpredictably or grant broader-than-intended capabilities, increasing the chance of accidental code execution or environment access beyond what is minimally required.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The trigger list includes broad everyday phrases like "capture this," "getting things done," and references to a markdown to-do file, which can cause the skill to activate in contexts where the user did not intend file mutation or triage behavior. Because this skill performs stateful document updates and may execute validator commands, unintended activation can lead to unwanted modifications, backups, or processing of sensitive pasted content.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The activation guidance says to activate when the user pastes an email, note, or ask and wants it captured, but the boundary between ordinary discussion and skill invocation is not crisply defined. In a skill that transforms user content into canonical records and may mutate a file, ambiguous activation increases the risk of ingesting sensitive or incomplete pasted material into the to-do system without sufficiently explicit consent.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.