Back to skill

Security audit

Self Driven

Security checks for vulnerabilities and agentic risk

Overview

This skill is openly designed to make the agent run tasks on its own, but it lacks clear limits, approval gates, and safeguards for scheduled or persistent autonomous work.

Install only if you intentionally want an agent to run a self-directed task loop. Before enabling it, require explicit approval for any file changes, shell/tool use, network access, credential use, or third-party actions; keep the memory/self-driven files in a dedicated scoped directory; and avoid unattended cron execution unless the runtime is tightly sandboxed.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:50
Finding
Autonomous Instruction Hijacking Through Persistent Task Memory## Vulnerability Details **File Location**: `SKILL.md`, lines 50-98 **Vulnerability Type**: Autonomous instruction execution and persistent memory poisoning **Risk Level**: High ### Vulnerable Instructions The following is an English translation of the relevant instructions: ```markdown - Add optimization directions to the next task list Write to `memory/self-driven/log.md`: ... Next step: - xxx ## Demonstration of Initiative **Do not wait for user instructions!** The AI autonomously: 1. Triggers periodically through cron every 30 minutes 2. Reads the previous progress itself 3. Selects tasks itself 4. Executes tasks itself 5. Evaluates itself 6. Records and reports by itself The user only needs to confirm or adjust direction after receiving the report. ## Cron Trigger Example ```yaml name: "Self-Driven" schedule: "0,30 * * * *" payload: "Execute self-driven skill" ``` ``` ### Technical Analysis The skill explicitly directs the agent not to wait for user instructions. It instead instructs the agent to read tasks and previous progress from mutable persistent files, select a task, execute it, and write newly generated next steps back into persistent state. This creates two related security problems: 1. **Current-session instruction hijacking:** Loading the skill changes the normal user-controlled execution model into autonomous task selection and execution. The instructions do not define a restrictive action allowlist, prohibit sensitive operations, or require approval before executing a selected task. 2. **Persistent memory poisoning:** The agent is instructed to derive future tasks from `memory/self-driven/log.md` and to append optimization directions and next steps to that state. Unsafe content inserted into the task pool or execution log can therefore influence later runs. The cron block is presented as an example rather than an installation command, so the reviewed package does ...[truncated 1886 chars]
Remediation
## Remediation Suggestions 1. Require explicit user approval immediately before every task that changes files, invokes external tools, accesses the network, uses credentials, or affects third-party systems. 2. Treat `tasks.md`, `log.md`, and all other persisted content as untrusted data rather than executable instructions. 3. Parse tasks into a strict schema containing fields such as task identifier, permitted action, resource scope, origin, expiration, and approval status. 4. Enforce a narrow action allowlist and reject free-form task text that requests shell execution, credential access, security-control changes, external uploads, or modifications outside an approved workspace. 5. Do not allow the agent to create authoritative future instructions. Store generated recommendations as untrusted proposals requiring user review. 6. Separate immutable audit history from the executable task queue so that log content can never become instructions. 7. Remove unattended recurring execution, or restrict scheduled runs to read-only status reporting. Any state-changing phase should require a fresh approval token tied to the exact task and parameters. 8. Apply least privilege to the runtime by limiting filesystem paths, network destinations, APIs, credentials, and tools available to this skill. 9. Record task provenance and maintain an append-only audit trail of task selection, approvals, tool calls, outputs, and state changes. 10. Add loop, rate, and scope limits so a task cannot generate an unbounded chain of follow-up tasks or repeatedly execute after failure.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The README explicitly requires persistent record writing to local files (`memory/self-driven/...`) as part of every execution, but it does not warn the user that the skill modifies local state or describe consent/approval boundaries. In an autonomous or semi-autonomous agent setting, silent persistence can create integrity, privacy, and auditability risks because the agent may alter workspace files without the operator clearly understanding when and where writes occur.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill explicitly instructs periodic autonomous execution every 30 minutes and persistent writes to local memory/log files, but it does not require explicit user consent, visibility, execution boundaries, or safeguards around what actions may be taken during those runs. This creates a real risk of silent background behavior and unintended file modification, especially because the skill's core design is to let the AI 'proactively find things to do' rather than wait for user direction.

Natural-Language Policy Violations

Medium
Confidence
88% confidence
Finding
The natural-language fields in the manifest, including the description and trigger phrases, are entirely in Chinese with no indication that users may choose another language or locale. This can violate language/locale policy expectations when the skill is not clearly documented as region-specific or offering user opt-in.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger list includes broad phrases such as "执行任务" and "Cron 任务" that could match ordinary user requests or background scheduling contexts, causing the skill to activate without clear user intent. In a self-driven automation skill, unintended activation is more dangerous because it may initiate autonomous task-selection behavior, expanding the chance of unauthorized or surprising actions.

Natural-Language Policy Violations

Low
Confidence
90% confidence
Finding
The file includes user-facing natural-language content in Chinese across the changelog entries, but does not offer an alternative language or indicate that the locale is intentionally region-specific. Under the language/locale policy rule, this can be considered a forced language choice without user opt-in.

Natural-Language Policy Violations

Low
Confidence
80% confidence
Finding
The skill documentation is entirely written in Chinese and does not indicate that users may choose another language or that the locale is intentionally restricted for a region-specific purpose. This can be a natural-language policy issue when a specific language is imposed without opt-in.

Natural-Language Policy Violations

Low
Confidence
95% confidence
Finding
The natural-language instructions, examples, and operational guidance are all presented in Chinese, which effectively forces a specific language for use of the skill. Under the stated policy, language constraints should either be optional for the user or clearly justified as region- or locale-specific.

Static analysis

No suspicious patterns detected.