Back to skill

Security audit

SELF LEARNING SKILL V2

Security checks for vulnerabilities and agentic risk

Overview

This self-learning skill is not malicious, but it asks the agent to retain and reuse task history across future work and to search for tokens too broadly, so it should be reviewed before installation.

Install only if you want a Chinese self-learning/error-tracking assistant and can keep it task-scoped. Disable or constrain persistent memory, require approval before saving lessons or applying checklists to future tasks, and do not allow broad filesystem searches for tokens; use a scoped credential source such as an authenticated CLI or an explicitly approved path.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:341
Finding
Unscoped Discovery of Authentication Tokens## Vulnerability Details **File Location**: `SKILL.md:341-346` **Vulnerability Type**: Credential discovery beyond defined least-privilege boundaries **Risk Level**: Medium **Relevant excerpt translated into English from the original documentation:** ```markdown **Type**: TECH-001 (API usage error) **Cause**: GitHub token was not found **Resolution**: Search multiple locations for the token **Prevention**: 1. Verify that the token is usable before publishing 2. Establish a standard token storage location ``` Supporting references also occur in `ERROR_LOG.md:43-60`, where the documented solution explicitly recommends searching multiple locations for token files and establishing a multi-location token-search mechanism. ### Technical Analysis The Skill recommends searching multiple filesystem locations for authentication tokens but does not establish: - An allowlist of permitted credential paths - A restriction to credentials associated with the current project - Explicit user authorization before credential discovery - Controls preventing token contents from entering logs, prompts, or persistent records - A requirement to use an authenticated credential manager instead of filesystem discovery This conflicts with the principle of least privilege. A publishing task may legitimately need access to one specific GitHub credential, but it does not require unrestricted discovery across unrelated directories or credential stores. The package contains no executable implementation of this search, so exploitation depends on an agent interpreting and acting on the documented instruction. No instruction to disclose or transmit token values was found. ### Attack Path 1. A publishing or authentication operation fails because the expected GitHub credential is unavailable. 2. The Skill applies its documented resolution and searches multiple filesystem locations for token files. 3. The search reaches locations outside the ...[truncated 921 chars]
Remediation
## Remediation Suggestions 1. Remove all instructions to search unspecified or multiple filesystem locations for tokens. 2. Require the user to identify and authorize one exact credential source. 3. Prefer an authenticated platform client or operating-system credential manager, such as GitHub CLI authentication, without reading raw token values. 4. Restrict filesystem access to an explicit allowlist under the current project or a documented credential path. 5. Verify only whether authentication succeeds; never print, copy, summarize, or persist the credential value. 6. Redact tokens and token-like strings from command output, error logs, learning records, and agent memory. 7. Require explicit confirmation before changing credential sources or accessing a location outside the project. 8. Document the minimum required token scopes and reject overprivileged credentials.

T02 · Agent Memory Poisoning

Warning
Location
SKILL.md:422
Finding
Unvalidated Task Content Can Persistently Influence Future Agent Behavior## Vulnerability Details **File Location**: `SKILL.md:422-427` **Vulnerability Type**: Persistent application of task-derived records without validation or isolation **Risk Level**: Medium **Relevant excerpt translated into English from the original documentation:** ```markdown ### Knowledge accumulation - Every error is recorded in the knowledge base - Every solution is standardized - Every preventive measure is automated ### Sharing and inheritance - Error records are visible to new tasks - Checklists are applied automatically ``` Related behavior appears in `SKILL.md:264-284`, which declares post-task review mandatory and directs the agent to record errors and add preventive measures to a checklist. ### Technical Analysis The Skill instructs the agent to convert task-derived errors, solutions, and preventive measures into persistent knowledge that is visible to new tasks and applied automatically. It does not specify: - A trust boundary between user instructions, external content, and verified facts - Validation of proposed lessons or checklist entries - Project or user isolation for retained records - Approval before a retained rule becomes active - Expiration, rollback, deletion, or provenance controls - Filtering of secrets, executable instructions, or adversarial text Consequently, attacker-controlled text encountered during a task could be misclassified as a lesson or preventive measure. Once standardized and automatically applied, that content could influence later sessions even when the original attacker is absent. The package does not contain an actual memory database or persistence implementation. The risk arises from behavioral instructions intended for an agent with memory or writable state. ### Attack Path 1. An attacker supplies a task, document, error message, repository file, or tool output containing a malicious operational rule. 2. During the mandatory retrospective, the agent ...[truncated 1143 chars]
Remediation
## Remediation Suggestions 1. Treat all task-derived content as untrusted until explicitly reviewed and approved. 2. Store structured facts rather than free-form instructions. Separate observations, evidence, proposed remediation, and approved policy. 3. Require explicit user approval before any lesson or checklist item becomes persistent or automatically enforceable. 4. Scope records by user, workspace, and project; do not expose one project's records to unrelated tasks. 5. Record provenance, including the originating task, file, author, timestamp, and approval status. 6. Reject retained content that attempts to alter safety constraints, tool permissions, credential handling, or instruction priority. 7. Remove secrets and sensitive data before persistence. 8. Add expiration periods, review dates, version history, rollback, and deletion controls. 9. Revalidate every retained rule against the current user's instructions and current security policy before applying it. 10. Change automatic checklist application to an advisory mode that displays proposed actions for confirmation.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (9)

Vague Triggers

Medium
Confidence
95% confidence
Finding
The learning triggers are broadly defined around common situations like encountering difficulties, higher user expectations, knowledge gaps, or project needs. In an agent setting, these conditions overlap with normal conversation and routine work, which can cause the skill to activate unexpectedly and steer behavior without clear user consent or scoped boundaries.

Vague Triggers

Medium
Confidence
97% confidence
Finding
The control phrases include very generic expressions such as '继续学习', '换个方向', '太快了', and '我来看', which are likely to appear in ordinary dialogue outside the intended skill context. Without strict activation boundaries, these phrases can be misinterpreted as control commands and let unrelated conversation manipulate the agent's state or workflow.

Natural-Language Policy Violations

Medium
Confidence
83% confidence
Finding
The skill documentation presents the skill entirely in Chinese and frames its operating identity in that language without indicating that users may select another language. This can violate language/locale policy when no user opt-in or alternative language behavior is offered.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The README states the skill is 'built-in' and 'automatically executes' without defining clear activation boundaries, consent, or triggering conditions. For an agent skill, this can cause the skill to run in unintended contexts, altering assistant behavior or initiating self-directed actions without explicit user intent.

Vague Triggers

Medium
Confidence
96% confidence
Finding
The listed control phrases are common conversational expressions like '继续学习' and '我来看', which can appear in normal dialogue and accidentally trigger skill state changes. This creates prompt-trigger ambiguity, making it easy for benign conversation or third-party content to start, stop, or redirect the skill unintentionally.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The title and the entire skill description are written in Chinese, with no indication that users may choose another language or locale. The policy specifically flags language or locale constraints when they are imposed without opt-in or justification.

Ssd 3

Medium
Confidence
96% confidence
Finding
The skill explicitly directs persistent recording of errors, lessons, and task-related details and makes them visible to future tasks. That creates a cross-task data retention channel in natural language, which can cause sensitive user data, credentials, operational details, or private context from one interaction to be exposed or reused in later unrelated work.

Natural-Language Policy Violations

Low
Confidence
78% confidence
Finding
SQP-3 applies to all file types and covers natural-language language/locale policy issues. This file presents operational guidance and error-handling content in Chinese throughout, with only limited English labels, and does not indicate user opt-in or a justified region-specific constraint.

Natural-Language Policy Violations

Low
Confidence
85% confidence
Finding
整份技能说明、触发器和示例交互都默认以中文编写,并在末尾声明技能已激活,但没有说明是否支持其他语言或允许用户选择输出语言。根据语言/locale 政策,若技能默认强制单一语言而未取得用户选择或提供合理限制说明,可能构成自然语言策略问题。

Static analysis

No suspicious patterns detected.