Back to skill

Security audit

Auto Revolution

Security checks for vulnerabilities and agentic risk

Overview

This skill is a task workflow helper, but several bundled scripts can modify task state and can be abused to run local code or touch files outside the task folder.

Review before installing. Use this only in a restricted workspace with limited filesystem access, and avoid running unblock or force-unlock helpers with untrusted task IDs or note text until they validate IDs, stop constructing node -e programs from user input, and constrain reference_files to approved project paths. I did not find evidence of credential theft, remote payload execution, or install-time persistence.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (4)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/force-unlock.sh:81
Finding

Arbitrary JavaScript Execution Through Unsafe Note Interpolation in Force-Unlock Helper

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/unblock-task.sh:106
Finding

Arbitrary JavaScript Execution Through Unsafe Note Interpolation in Unblock Helper

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/atomic-lock.sh:25
Finding

Unvalidated Task Identifiers Permit Filesystem Path Traversal and Unsafe Recursive Deletion

Content
View full analysis
/dev/null; then echo $$ > "$lock_dir/pid" date -Iseconds > "$lock_dir/timestamp" return 0 fi } release_lock() { local task_id=$1 local lock_dir="$TASKS_DIR/${task_id}.lock.d" if [ -d "$lock_dir" ]; then rm -rf "$lock_dir" fi } ``` `scripts/force-unlock.sh`: ```bash task_file="$TASKS_DIR/${task_id}.json" lock_dir="$TASKS_DIR/${task_id}.lock.d" if [ ! -f "$task_file" ]; then exit 1 fi if [ -d "$lock_dir" ]; then rm -rf "$lock_dir" fi ``` `scripts/unblock-task.sh`: ```bash task_file="$TASKS_DIR/${task_id}.json" lock_dir="$TASKS_DIR/${task_id}.lock.d" if [ -d "$lock_dir" ]; then rm -rf "$lock_dir" fi ``` `scripts/apply-review.js`: ```javascript function readTask(taskId) { const taskFile = path.join(TASKS_DIR, `${taskId}.json`); if (!fs.existsSync(taskFile)) { return null; } return JSON.parse(fs.readFileSync(taskFile, 'utf8')); } function writeTask(task) { const taskFile = path.join(TASKS_DIR, `${task.task_id}.json`); fs.writeFileSync(taskFile, JSON.stringify(task, null, 2)); } ``` `scripts/trigger-review.js`: ```javascript function readTask(taskId) { let taskFile; if (/^\d+$/.test(taskId)) { const paddedId = taskId.padStart(3, '0'); taskFile = path.join(TASKS_DIR, `task-${paddedId}.json`); } else { taskFile = path.join(TASKS_DIR, `${taskId}.json`); } if (!fs.existsS ...[truncated 3209 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Error
Location
scripts/trigger-review.js:93
Finding

Untrusted Task Content Can Hijack the Generated Reviewer Prompt and Request Unrestricted File Reads

Content
View full analysis
`,'); console.log(' model: "advanced-model/sonnet",'); console.log(' mode: "run"'); console.log('})'); ``` The original source uses Chinese prompt text; the structure and vulnerable interpolation shown above are equivalent to that source. ### Technical Analysis The script serializes the complete task object directly into an Agent prompt. Task fields such as descriptions, results, history, and reference-file entries are untrusted workflow data. Delimiting them with a Markdown code fence does not create a security boundary: malicious content can include its own fence terminator, instructions to ignore the reviewer role, or requests to disclose dat ...[truncated 1980 chars]
Remediation
View remediation
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (42)

Tp4

High
Category
MCP Tool Poisoning
Confidence
89% confidence
Finding

The skill references scripts that can remove lock directories and mutate task state, including unblocking work for later pickup, while the description frames the package as a safe supervised utility. In practice, filesystem deletion and workflow reactivation are sensitive control actions; if misunderstood or over-permitted, they can bypass operational safeguards and interfere with task lifecycle integrity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill references scripts that can remove lock directories and mutate task state, including unblocking work for later pickup, while the description frames the package as a safe supervised utility. In practice, filesystem deletion and workflow reactivation are sensitive control actions; if misunderstood or over-permitted, they can bypass operational safeguards and interfere with task lifecycle integrity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill references scripts that can remove lock directories and mutate task state, including unblocking work for later pickup, while the description frames the package as a safe supervised utility. In practice, filesystem deletion and workflow reactivation are sensitive control actions; if misunderstood or over-permitted, they can bypass operational safeguards and interfere with task lifecycle integrity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

The skill references scripts that can remove lock directories and mutate task state, including unblocking work for later pickup, while the description frames the package as a safe supervised utility. In practice, filesystem deletion and workflow reactivation are sensitive control actions; if misunderstood or over-permitted, they can bypass operational safeguards and interfere with task lifecycle integrity.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill references scripts that can remove lock directories and mutate task state, including unblocking work for later pickup, while the description frames the package as a safe supervised utility. In practice, filesystem deletion and workflow reactivation are sensitive control actions; if misunderstood or over-permitted, they can bypass operational safeguards and interfere with task lifecycle integrity.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `scripts/activate-queued-tasks.js` to move ready tasks from `queued` to `pending`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `scripts/activate-queued-tasks.js` to move ready tasks from `queued` to `pending`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `scripts/trigger-review.js` to generate a review prompt for supervised review

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `scripts/trigger-review.js` to generate a review prompt for supervised review

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `scripts/apply-review.js` to write a review result back into a task JSON file

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `scripts/apply-review.js` to write a review result back into a task JSON file

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The script resets a task to pending and explicitly states that a main-agent heartbeat will automatically detect that state and continue review, which re-enables autonomous workflow progression. That behavior materially conflicts with the skill description claiming it avoids autonomous background execution, increasing the risk of unintended task advancement after a manual unlock operation.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · scripts/security-scan.js (reported line 15)May include surrounding context.

js
{ pattern: /rm\s+-rf\s+\/\s*$/, reason: '删除根目录' },
  { pattern: /rm\s+-rf\s+~\s*$/, reason: '删除用户主目录' },
  { pattern: /rm\s+-rf\s+\/\*/, reason: '删除所有根目录文件' },
  { pattern: /curl\s+[^|]+\|\s*(ba)?sh/, reason: '远程代码执行(curl | sh)' },
  { pattern: /wget\s+[^|]+\|\s*(ba)?sh/, reason: '远程代码执行(wget | sh)' },
  { pattern: /chmod\s+777/, reason: '设置全权限(chmod 777)' },
  { pattern: /\bsudo\b/, reason: '提权操作(sudo)' },

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · scripts/security-scan.js (reported line 16)May include surrounding context.

js
{ pattern: /rm\s+-rf\s+~\s*$/, reason: '删除用户主目录' },
  { pattern: /rm\s+-rf\s+\/\*/, reason: '删除所有根目录文件' },
  { pattern: /curl\s+[^|]+\|\s*(ba)?sh/, reason: '远程代码执行(curl | sh)' },
  { pattern: /wget\s+[^|]+\|\s*(ba)?sh/, reason: '远程代码执行(wget | sh)' },
  { pattern: /chmod\s+777/, reason: '设置全权限(chmod 777)' },
  { pattern: /\bsudo\b/, reason: '提权操作(sudo)' },
  { pattern: /dd\s+if=\/dev\/zero/, reason: '磁盘写入操作' },

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · scripts/security-scan.js (reported line 17)May include surrounding context.

js
{ pattern: /rm\s+-rf\s+\/\*/, reason: '删除所有根目录文件' },
  { pattern: /curl\s+[^|]+\|\s*(ba)?sh/, reason: '远程代码执行(curl | sh)' },
  { pattern: /wget\s+[^|]+\|\s*(ba)?sh/, reason: '远程代码执行(wget | sh)' },
  { pattern: /chmod\s+777/, reason: '设置全权限(chmod 777)' },
  { pattern: /\bsudo\b/, reason: '提权操作(sudo)' },
  { pattern: /dd\s+if=\/dev\/zero/, reason: '磁盘写入操作' },
  { pattern: /:\(\)\s*\{\s*:\|:&\s*\}\s*;/, reason: 'Fork Bomb' },

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · scripts/security-scan.js (reported line 168)May include surrounding context.

js
console.log('用法:');
  console.log('  node security-scan.js <task-file.json>   # 扫描任务文件');
  console.log('  node security-scan.js --stdin            # 从 stdin 读取指令');
  console.log('  echo "rm -rf /" | node security-scan.js --stdin');
  console.log('');
  console.log('退出码:');
  console.log('  0 - 安全,无危险命令');

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · scripts/security-scan.js (reported line 168)May include surrounding context.

js
console.log('用法:');
  console.log('  node security-scan.js <task-file.json>   # 扫描任务文件');
  console.log('  node security-scan.js --stdin            # 从 stdin 读取指令');
  console.log('  echo "rm -rf /" | node security-scan.js --stdin');
  console.log('');
  console.log('退出码:');
  console.log('  0 - 安全,无危险命令');

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
80% confidence
Finding

The skill advertises shell-capable helper scripts but does not declare any explicit tool scope such as allowed-tools or permissions. That creates a policy gap where a host agent may over-grant shell access or invoke the skill without clear restrictions, increasing the chance of unintended filesystem or process actions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This JSON config contains multiple natural-language descriptions only in Chinese, including role behavior and executor defaults. Because the file provides no opt-in, alternative locale, or justification for a Chinese-only policy, it may impose a language preference on users or operators in violation of the language/locale policy requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The file's natural-language descriptions and CLI output are presented in Chinese throughout, which imposes a specific language on users. The file does not offer an opt-in language choice or explain that the tool is intentionally limited to a Chinese-speaking context.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

This code performs a direct file write to the task JSON using fs.writeFileSync, which changes persistent task state. Although the script logs after applying the review, there is no confirmation prompt or explicit warning near the write path that the existing task file will be modified in place.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The comment on L156 states only the approve/revise path results in a reviewed state awaiting executor-agent execution. However, the reject branch immediately above can also drive further execution by setting the task back to pending on L152-L153, which conflicts with the script's framing of review outcomes and next execution handling.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The script deletes a path derived from untrusted user input using rm -rf without validating that task_id is constrained to an expected safe format. Because lock_dir is built as $TASKS_DIR/${task_id}.lock.d, a crafted task ID containing path traversal sequences (for example ../../...) could cause recursive deletion outside the intended tasks directory if the caller can supply arbitrary IDs.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The manifest describes this package as a safe publishing variant for human-supervised workflows that avoids autonomous background execution. Here the script explicitly classifies tasks into an 'auto' mode and later prepares them for automated reviewer-driven subtask generation, which expands behavior beyond the stated non-autonomous scope.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The comment says status is written back to pending only for blocked or reviewing tasks, but the actual condition also includes executing. This is an intent/documentation mismatch around a sensitive recovery path because it broadens which tasks can be forcibly reverted.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.