Back to skill

Security audit

Self Learning Coach v0.1.12

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed learning-coach workflow that reads user-selected materials, generates lesson files, and tracks lesson progress with proportionate local records.

Before installing, understand that this skill is designed to read the materials you provide or authorize, generate local HTML lesson files, and keep local lesson/source indexes. Use it only with materials you are comfortable granting read access to, and review generated HTML or Feishu-delivered files before forwarding them outside their intended audience.

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
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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
Findings (9)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The invocation examples and continuation commands are presented exclusively in Chinese, including required reply phrases like "系统学习". This can create a language-policy issue because the skill appears to assume a fixed language/locale rather than explicitly allowing the user to choose their preferred language.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
If visible metadata or probe results show multiple real resources are needed for the same user-provided material, batch the minimum read-only permissions into one authorization attempt when the tool supports it. Do not make the user approve a separate flow for each nested object unless the tool forces that sequence.

If a tool explicitly reports missing authorization, missing scope, expired token, or permission denied, follow the tool's normal authorization flow with the minimum read-only permission needed for the actual resource chain. Do not ask the user to choose between technical permission options, do not guess broad scopes, and do not request write, admin, or unrelated permissions for learning.

When authorization is needed, explain it in one short user-facing sentence, for example:

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
If visible metadata or probe results show multiple real resources are needed for the same user-provided material, batch the minimum read-only permissions into one authorization attempt when the tool supports it. Do not make the user approve a separate flow for each nested object unless the tool forces that sequence.

If a tool explicitly reports missing authorization, missing scope, expired token, or permission denied, follow the tool's normal authorization flow with the minimum read-only permission needed for the actual resource chain. Do not ask the user to choose between technical permission options, do not guess broad scopes, and do not request write, admin, or unrelated permissions for learning.

When authorization is needed, explain it in one short user-facing sentence, for example:

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The prescribed continuation prompts tell the user to reply with exact Chinese phrases such as "系统学习" and "继续". Requiring fixed Chinese commands without an opt-in or multilingual alternative is a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
3. After sending the file, verify the CLI response before claiming delivery. Treat delivery as successful only when the response indicates success, such as `"ok": true`, and includes a message identifier such as `message_id`.
4. Treat HTML as a portable file, not a guaranteed in-app preview. Feishu mobile clients may show an `.html` file as a downloadable attachment instead of rendering it inline. After delivery, tell the user to download/open it with a browser if mobile preview does not render.
5. Because Feishu HTML preview may block external link navigation, send a short follow-up chat message with the key reference URLs as plain text when web sources were used.
6. If the user needs a mobile-friendly Feishu-native reading experience or clickable links inside Feishu preview, ask whether to convert the lesson into a Feishu online document. Do not create the document without confirmation.
7. If file delivery fails or no success receipt is available, ask whether to convert the lesson into a Feishu online document. Do not create the document without confirmation.
8. If file delivery and document creation are both unavailable, provide the lesson content directly in the chat using clear headings, and explicitly say that HTML delivery was unavailable.
9. Never leave the user with only a hidden cloud-machine file path unless the user explicitly asks for the local path.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
3. After sending the file, verify the CLI response before claiming delivery. Treat delivery as successful only when the response indicates success, such as `"ok": true`, and includes a message identifier such as `message_id`.
4. Treat HTML as a portable file, not a guaranteed in-app preview. Feishu mobile clients may show an `.html` file as a downloadable attachment instead of rendering it inline. After delivery, tell the user to download/open it with a browser if mobile preview does not render.
5. Because Feishu HTML preview may block external link navigation, send a short follow-up chat message with the key reference URLs as plain text when web sources were used.
6. If the user needs a mobile-friendly Feishu-native reading experience or clickable links inside Feishu preview, ask whether to convert the lesson into a Feishu online document. Do not create the document without confirmation.
7. If file delivery fails or no success receipt is available, ask whether to convert the lesson into a Feishu online document. Do not create the document without confirmation.
8. If file delivery and document creation are both unavailable, provide the lesson content directly in the chat using clear headings, and explicitly say that HTML delivery was unavailable.
9. Never leave the user with only a hidden cloud-machine file path unless the user explicitly asks for the local path.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

L248-L254 and L256-L273 require creating or updating lessons/LEARNING_STATUS.md and lessons/LEARNING_SOURCES.md whenever an HTML lesson is generated. But L350 states 'Do not write persistent learning records to Feishu docs, Base, wiki, or workspace files unless the user asks,' which directly contradicts the earlier mandatory workspace-file tracking behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill description and default prompt are written in Chinese, which steers users into a specific language experience without indicating that other languages are supported or optional. This is a natural-language locale policy concern because the file does not offer a language choice or document a justified locale restriction.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The example authorization prompt is only given in Chinese and is framed as the user-facing sentence to use when authorization is needed. Without stating that the message should match the user's language, this conflicts with a language/locale choice expectation.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.