Back to skill

Security audit

Knowledge Digest

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a coherent learning-material generator, but its quiz template can put generated study content into HTML unsafely.

Review the quiz-generation behavior before installing. Use trusted source materials, avoid hosting generated quizzes on authenticated or sensitive web origins, and prefer a version that renders answers and explanations with textContent or equivalent safe escaping.

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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:373
Finding

Generated Quiz HTML Uses Unsafe innerHTML With Untrusted Educational Content

Content
View full analysis
Correct'; correct++; } else { feedback.innerHTML = 'Incorrect Correct answer: ' + answer + '
' + explanations[qName] + '
'; } ``` ### Technical Analysis The quiz template assigns an HTML string to `feedback.innerHTML`. That string contains the dynamically generated values `answer` and `explanations[qName]` without HTML sanitization or contextual output encoding. Quiz explanations are generated from uploaded textbooks, PDFs, web search results, topic descriptions, and personalized user input. These sources may be attacker-controlled. If malicious markup reaches an explanation or answer, the browser parses it as active HTML when the learner submits the quiz. For example, an attacker-controlled source could cause an explanation to contain a payload similar to: ```html ``` When inserted through `innerHTML`, the element's event handler can execute JavaScript. The template also specifies no Content Security Policy that would mitigate inline event-handler execution. Embedding generated content into the JavaScript `explanations` object may introduce an additional script-context injection hazard if the generator does not safely serialize quotation marks, backslashes, newlines, and closing `` sequences. The provided template does not define a safe serialization or sanitization requirement. ### Attack Path 1. An attacker supplies or influences a textbook, PDF, web page, topic description, or other so ...[truncated 1517 chars]
Remediation
View remediation
` sequences or place the serialized data in a non-executable JSON block and parse it safely. 3. Treat all textbook, PDF, search-result, and user-provided content as untrusted. Add an explicit generation rule prohibiting direct placement of source content into HTML, JavaScript, CSS, URLs, or event-handler attributes without contextual encoding. 4. If limited rich text is required, sanitize it with a maintained allowlist-based HTML sanitizer. Permit only necessary formatting elements and reject scripts, event-handler attributes, dangerous URL schemes, SVG, MathML, embedded objects, and frames. 5. Add a restrictive Content Security Policy to generated quizzes. Prefer external or nonce-authorized scripts and prohibit inline handlers. A baseline should include directives such as: ```html
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • 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
Findings (3)

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

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

md
1. **Content Fidelity** — All content must be based on original textbook/source material. No unverified information added.
2. **Grade Adaptation** — Adjust content depth and expression based on grade level for ALL formats.
3. **Output Rules** — Only return file paths. No inline display of images/PDFs/audio/video. No auto-play. No intermediate files.
4. **Color Constraints (Notes)** — Maximum 2 colors per PDF. Default blue + pink.
5. **Color Constraints (Slides)** — Do NOT use blue or purple as theme/background color unless user explicitly requests.
6. **Image Quality** — Notes: 150 DPI, 90% compression. Slides: 150 DPI, 95% quality.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest uses broad trigger phrases like 'learning materials', 'study notes', and 'quiz generation', which can cause the skill to activate for generic educational requests that users may not intend to route through this workflow. Over-broad invocation increases the chance of unnecessary file processing, tool use, or unintended access to sensitive study documents.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly instructs the agent to use search tools to collect materials when the user lacks source content, but it does not require notifying the user that external network access will occur or that their topic/context may be sent to third-party services. This creates a privacy and data-handling risk, especially if the topic contains sensitive educational, professional, or personal context.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.