Back to skill

Security audit

Autonomous Project Management

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed autonomous project manager, but it asks the main agent to hand off work to spawned agents with limited oversight and persistent git state changes.

Install only if you intentionally want an autonomous delegation workflow. Before using it on real repositories, require approval before spawning agents or committing, keep the PM state directory scoped, and verify delegated work yourself before accepting results.

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:129
Finding

Mandatory Main-Agent Role and Workflow Hijacking

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 129–142
Vulnerability Type: Agent instruction and workflow hijacking
Risk Level: High

Vulnerable Instruction Segment

The following is a faithful English rendering of the complete affected source segment:

markdown
### Main session = Coordinator ONLY

**Workflow**:
1. **New task arrives** → Check PROJECT_REGISTRY.md
2. **PM exists** → `sessions_send(label="pm-xxx", message="[task]")`
3. **New project** → `sessions_spawn(label="pm-xxx", task="[task]")`
4. **PM executes** → Update STATE.yaml and report back
5. **Main agent summarizes** → Respond to the user

**Rules**:
- The main session may make at most 0–2 tool calls, limited to spawn/send
- The PM owns its own STATE.yaml file
- The PM may spawn nested sub-agents for parallel subtasks
- All state changes must be committed to Git

This behavior is reinforced at SKILL.md, lines 178–181:

markdown
The less the main agent does, the faster the response:
- Do not execute tasks or monitor progress
- Only assign tasks and receive reports

Technical Analysis

The Skill imposes mandatory behavioral rules on the agent loading it. It declares that the main session must operate only as a coordinator, limits the main agent to no more than two tool calls, restricts those calls to session spawning or messaging, and expressly prohibits direct execution and progress monitoring.

These instructions do not merely document an optional project-management pattern. They attempt to replace the active agent's normal task-execution workflow and redirect user requests to existing or newly spawned PM sessions. Preventing the main agent from monitoring delegated work also weakens its ability to validate outputs, detect errors, or enforce the user's intended scope.

The Skill additionally requires all state changes to be committed to Git. This can cause persistent repository modifications wit ...[truncated 1951 chars]

Remediation
View remediation

Remediation Suggestions

  1. Replace mandatory wording such as “Coordinator ONLY,” fixed tool-call limits, and “do not execute tasks” with optional workflow guidance.
  2. Require explicit user approval before forwarding tasks to an existing session, spawning a new session, or creating nested sub-agents.
  3. Preserve the main agent's ability to inspect project files, monitor delegated work, validate results, and intervene when delegated actions depart from the requested scope.
  4. State explicitly that the Skill cannot override platform, system, developer, safety, or current user instructions.
  5. Require delegated agents to operate under the same task scope and security constraints as the main agent.
  6. Require confirmation before making Git commits or other persistent repository changes. Prefer presenting a diff for review before committing.
  7. Remove the hard-coded external workspace path and package the referenced management script with the Skill so its behavior can be audited.
  8. Validate project identifiers, task identifiers, registry entries, and state-file paths before passing them to tools or external scripts.
  9. Add bounded delegation controls, including maximum nesting depth, permitted tools, timeout limits, result verification, and complete action logging.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The manifest description and nearly all user-facing instructions are written in Chinese, and the file does not indicate that other languages are supported or that Chinese is required for a region-specific purpose. This can violate language/locale policy when a skill implicitly constrains interaction to a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
## 🔗 相关链接

- 脚本: `scripts/project-manager.cjs`
- 文档: `skills/autonomous-pm/SKILL.md`
- 灵感: [Nicholas Carlini 的自主编码代理](https://nicholas.carlini.com/)
- [OpenClaw 子代理文档](https://github.com/openclaw/openclaw)

Static analysis

No suspicious patterns detected.