Back to skill

Security audit

Dev Project Tracker

Security checks for vulnerabilities and agentic risk

Overview

This project-tracking skill is not malicious, but it needs review because it can persist project/personnel details outside project files and later delete project directories during archival.

Install only if you are comfortable with project updates, decisions, and personnel details being written to long-term memory. Before use, narrow the trigger phrases, disable or require explicit approval for memory_store/personal-log writes, validate project and requirement names, and require a recoverable archive step with an exact deletion-target preview.

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)

other

Warning
Location
SKILL.md:39
Finding

Unnecessary Persistent Storage of Project and Personnel Information

Content
View full analysis
Remediation
View remediation
//` directory by default. 2. Remove automatic synchronization of project updates to personal daily-memory files. 3. Require explicit, informed user consent before writing any project information to long-term memory. 4. Limit long-term memory to a short, user-approved summary that excludes personnel details, credentials, internal links, and confidential technical information. 5. Apply data classification and secret-detection checks before any persistent memory write. 6. Define retention periods and provide a mechanism to inspect and delete all memory entries associated with a project. 7. Ensure project archival also identifies and removes related persistent-memory records when requested. 8. Resolve the contradictory instructions concerning whether project progress may be placed in personal logs. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:72
Finding

Unsafe Path Construction Combined with Destructive Project Archival

Content
View full analysis
//` 下: ``` projects/// ``` ``` ```markdown ### 生命周期管理 README.md 中必须包含 `状态` 和 `实际上线` 字段: | 阶段 | 状态 | 触发条件 | 操作 | |------|------|---------|------| | 活跃期 | 🟢 开发中 | 创建时 | 完整记录所有文件 | | 蒸馏期 | 🟡 已上线(蒸馏中) | 上线后2周 | WORK_LOG/ISSUES 压缩为摘要,tech/design 保留 | | 归档期 | 🔴 已归档 | 上线后3个月 | 压缩为 ARCHIVE.md,删除原目录 | 蒸馏/归档前必须通知负责人确认。 ``` ### Technical Analysis The skill constructs project paths from project and requirement names and later instructs the agent to delete the original directory during archival. It does not require validation or canonicalization of either path component. Missing safeguards include: - Rejection of absolute paths. - Rejection of `.` and `..` path components. - Canonical-path containment checks under the intended `projects/` root. - Detection of symbolic links. - Verification that the deletion target is a requirement directory. - A recoverable trash or backup step. - An exact deletion-target preview as part of confirmation. If project or requirement names are influenced by untrusted input, path traversal syntax or symlink redirection could cause filesystem operations to resolve outside the intended project root. Owner confirmation does not fully mitigate this issue because a confirmation request may present a logical project name rather than the canonical directory that will actually be deleted. The repository does not contain an implementation of the deletion operation, so this finding concerns an unsafe skill instruction rather than a confirmed shell-command injection. Exploitability depends on how an executing agent translates the archival instruction into filesystem operations. ### Attack Path 1. An attacker or untrusted user request ...[truncated 1478 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (15)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The skill's activation phrases and operating instructions are written only in Chinese, with no indication that another language is supported or that the user can opt in to Chinese-only behavior. This can violate language/locale policy when a skill implicitly requires a specific language without user choice or documented justification.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The trigger phrases are broad and overlap with ordinary project conversation such as 'record progress' or 'project status'. That increases the risk of accidental activation, leading the agent to create files, modify project records, or persist information when the user may have been speaking conversationally rather than issuing an instruction.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill performs persistent writes to project files, personal logs, and long-term memory, but the description does not warn users about this retention behavior. Lack of disclosure undermines informed consent and can cause sensitive operational or personnel information to be stored durably without the user's awareness.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill is described as a project documentation manager, but it instructs the agent to also write progress and decisions into personal logs and long-term memory. This expands the data handling scope beyond the stated project-directory purpose, increasing the chance that user-provided project details, decisions, or sensitive context are retained in places the user did not expect.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill contains contradictory guidance: it says to sync project progress into a personal log, but later says project progress should not be mixed into personal logs. In practice, inconsistent instructions can cause unintended storage of project data in personal memory locations and make operator expectations unreliable.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill explicitly directs the agent to copy project updates and key decisions into persistent memory stores. Because those updates may include sensitive business context, user-provided details, or internal decisions, automatic retention outside the project files creates a meaningful data minimization and exposure risk.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill tells the agent to synchronize personnel information into long-term memory, which materially raises privacy and confidentiality risk. Personnel data is especially sensitive because it can include identities, responsibilities, and organizational relationships, and persistent storage increases the blast radius of later disclosure or misuse.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file content is entirely in Chinese, including the title and instructional text, with no indication that the user can choose another language or that the template is intentionally limited to a Chinese-speaking context. This creates a natural-language locale policy concern because it implicitly enforces a specific language without opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown template uses Chinese for the title and usage instruction, which imposes a specific language on users without any visible opt-in or explanation. Under the language/locale policy rule, fixed-language natural-language content can be a policy violation when no choice or justification is provided.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

This shell script’s description, usage examples, comments, error messages, and status output are written in Chinese throughout the file. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly documented and justified, which is not present here.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

The status-view feature instructs the agent to scan all directories under projects/ to build a dashboard, but it does not disclose the breadth of that scan. In multi-project or multi-tenant environments, this can expose unrelated project metadata more broadly than the user intended.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file's headings and table labels are entirely in Chinese, which indicates a fixed language choice in the skill template. There is no visible opt-in, alternative locale, or explanation that this template is intended only for a Chinese-speaking or region-specific context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The markdown template is entirely written in Chinese, including the title, column headers, and status explanation, with no indication that users may choose another language. The policy explicitly flags language or locale constraints when a skill forces a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown template uses Chinese for the title, column headers, and status description, which imposes a specific language on users. The policy allows locale constraints only when they are optional or clearly justified, neither of which is indicated in this file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

This README template uses Chinese headings and placeholders throughout, which effectively imposes a specific language on users of the skill artifact. The file does not indicate that Chinese is optional, user-selected, or required for a justified region-specific purpose.

Content

No source excerpt is available for this finding.