Back to skill

Security audit

Auto Continue

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly contains a read-only checker, but its README tells an agent to continue work, test, update progress, and publish without waiting for the user.

Review before installing. The checker script itself appears read-only, but the README asks an agent to keep working and even publish automatically, which can cause unintended edits, tests, or releases if the agent treats README text as operational instructions.

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
README.md:3
Finding
Mandatory Autonomous Task Continuation and Suppression of User Oversight## Vulnerability Details **File Location**: `README.md`, lines 3-25 **Vulnerability Type**: Agent instruction hijacking **Risk Level**: High ### Vulnerable Documentation The following is an English translation of the complete relevant source segment: ```markdown > Automatically continue tasks. When the Agent stops and waits for instructions, proactively determine the next step and continue. ## Core Problem The Agent stops after writing SKILL.md and waits for the user to say "continue" → wastes time. ## Solution Whenever you send a message and there are unfinished tasks, the Agent automatically: 1. Reads the state in `memory/in_progress.md` 2. Scans the skills directory for completeness 3. Continues executing the next item 4. Updates progress 5. Reports only after completing all steps ## Rules **Task unfinished = cannot stop** - SKILL.md written but no script → write the script immediately - Script written but not tested → test it immediately - Tests passed but not published → publish it immediately - Report only after all steps are complete ``` ### Technical Analysis The README imposes persistent behavioral directives on an Agent that loads the Skill. In particular, the directives require the Agent to continue work without waiting for further authorization, modify progress state, publish completed artifacts, and defer reporting until every step has finished. These instructions alter the Agent's normal session goals and user-confirmation boundaries. They are also inconsistent with the stated safety boundary in `SKILL.md`, which describes the Skill as detection-only and says that publishing or similar operations should be independently evaluated for user confirmation. The executable script does not itself perform publication, task execution, or state updates. The risk arises when an Agent interprets the README as operational instructions and uses its available tools to perform those actions. Any re ...[truncated 1351 chars]
Remediation
## Remediation Suggestions 1. Remove the mandatory “cannot stop” rule and all instructions requiring autonomous continuation. 2. Replace execution directives with read-only recommendations, such as reporting incomplete tasks and suggesting possible next steps. 3. Require explicit user confirmation before modifying files, running commands or tests, updating persistent progress state, uploading content, or publishing artifacts. 4. Remove the directive to delay reporting. Report detected work immediately so the user can review and authorize each consequential action. 5. Align `README.md` with the safety boundaries in `SKILL.md`, clearly stating that the Skill only detects and reports incomplete tasks. 6. Document that the checker’s nonzero exit status is informational and must not be interpreted as authorization to execute subsequent tasks. 7. Add an explicit policy such as: “Never continue an unfinished task automatically; present findings and wait for user approval.”
Vulnerability Patterns
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • 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 (5)

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The README explicitly instructs the agent to continue acting without further user confirmation, including writing scripts, testing, and publishing. This is dangerous because it removes approval checkpoints before potentially state-changing actions, increasing the risk of unintended code execution, destructive changes, or premature release if task state or context is misread.

Lp3

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding
The skill instructs the agent to read `memory/in_progress.md` and scan the `skills` directory, which are file-read capabilities, but it does not declare any explicit tool scope such as `permissions` or `allowed-tools`. Even though the described behavior is limited and appears operationally benign, the lack of scope declaration weakens least-privilege controls and can allow broader file access than reviewers or runtimes expect.

Description-Behavior Mismatch

Medium
Confidence
86% confidence
Finding
The module docstring and CLI description present this as a script for checking task status and deciding whether execution should continue. However, check_skill_status() traverses the global skills directory and evaluates each skill for missing SKILL.md or Python scripts, which is a broader repository audit capability rather than just resuming the current task.

Natural-Language Policy Violations

Low
Confidence
92% confidence
Finding
The natural-language instructions and behavior description are presented entirely in Chinese, with no indication that users may choose another language or that the skill is intentionally restricted to a Chinese-speaking context. The policy requires flagging language or locale constraints when a specific language is effectively forced without opt-in or justification.

Natural-Language Policy Violations

Low
Confidence
96% confidence
Finding
This Python file contains its docstring, CLI help text, and runtime status messages exclusively in Chinese, which imposes a specific language on users. The policy allows locale constraints only when clearly justified or when users are offered a language choice, neither of which is present here.

Static analysis

No suspicious patterns detected.