Back to skill

Security audit

University

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent study-management helper, but it asks the agent to persist sensitive learning data and potentially use calendars, recordings, and parent/tutor sharing without enough consent and scoping safeguards.

Install only if you are comfortable with an education skill keeping long-term local study records. Before using it, require confirmation before file creation or archiving, use safe slugged degree folder names, avoid connecting calendars or recording voice unless you explicitly opt in, and do not enable parent/tutor sharing without clear consent and recipient controls.

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

Unsanitized User-Controlled Degree Name Used in Filesystem Paths

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:46 and degrees.md:15,112-113
Vulnerability Type: Path traversal caused by unsafe path construction
Risk Level: Medium

Vulnerable Code Snippets

SKILL.md:46:

markdown
**New degree/career:** User says what they want to learn → Generate complete curriculum equivalent to university degree → Map prerequisites → Estimate total time → Create study calendar → Store in degrees/[name]/.

degrees.md:15:

markdown
6. **Store** — Create degrees/[name]/ with curriculum.md, progress.md, calendar.md

degrees.md:112-113:

markdown
1. Generate completion certificate summary
2. Move to degrees/archive/[name]/

Technical Analysis

The Skill derives a degree name from user input and instructs the Agent to use that value as a directory component. It does not require validation, safe slug generation, canonical-path resolution, or verification that the resulting path remains inside ~/university/degrees/.

If an Agent follows these instructions with filesystem tools, path separators or traversal components in the supplied name may alter the destination. For example, a value containing ../ could resolve outside the intended degree directory. The same weakness affects both initial creation and archival operations.

The exploitability and exact effects depend on the hosting Agent's filesystem tools, path handling, existing files, and operating-system permissions.

Attack Path

  1. The user asks to create a degree whose supplied name contains path traversal components, such as ../../target.
  2. The Skill substitutes that value into degrees/[name]/.
  3. The Agent creates curriculum, progress, or calendar files at the resulting unresolved or normalized path.
  4. The operating system resolves the traversal components outside ~/university/degrees/.
  5. During archival, the same crafted name may cause a move operation to target an unintended source or destination.
  6. Files outside th ...[truncated 609 chars]
Remediation
View remediation

Remediation Suggestions

  1. Convert every user-provided degree name into a restricted slug before using it in a path.
  2. Allow only a conservative character set, such as ASCII letters, digits, hyphens, and underscores.
  3. Reject absolute paths, . and .. components, path separators, null bytes, drive prefixes, and platform-specific alternate separators.
  4. Resolve the candidate path to its canonical absolute form before any create, write, or move operation.
  5. Verify that the canonical path is a descendant of the canonical ~/university/degrees/ directory.
  6. Use filesystem APIs that operate relative to a trusted directory handle where available.
  7. Refuse operations involving symbolic links that could redirect access outside the workspace.
  8. Avoid overwriting existing files by default and require explicit confirmation for destructive archival conflicts.
  9. Maintain a display name separately from the sanitized filesystem identifier.
  10. Apply the same validation to creation, lookup, update, export, and archival operations.

A suitable instruction would be:

markdown
Before using a degree name in any filesystem path, generate a safe slug containing only letters, digits, hyphens, and underscores. Resolve the final path canonically and proceed only if it remains beneath `~/university/degrees/`. Reject absolute paths, traversal components, separators, and symbolic-link escapes.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (13)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The parent/tutor visibility section contemplates sharing dashboards, summaries, and alert-triggered communications with third parties, but provides no safeguards around consent, authorization, age/role verification, or limits on what can be disclosed. In an education context, this is more dangerous because performance, motivation, burnout, and learning-difficulty signals may be sensitive and could be exposed to unauthorized people or shared in ways the learner did not approve.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The activation criteria are broad enough that ordinary educational or study-related requests could trigger this skill unintentionally. That can cause the agent to take over the interaction with persistent file creation and workflow assumptions the user did not explicitly request, increasing the chance of unwanted actions or data handling.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The listed trigger phrases are common conversational requests such as asking for help with classes, exams, or career transitions, so they may match many benign everyday prompts. If auto-activated, the skill could inappropriately steer the session into broad curriculum management, progress tracking, and filesystem operations without clear user consent.

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 suggests recording oral exam responses for self-review but provides no notice about consent, storage, retention, access controls, or handling of potentially sensitive voice data. In an education context, recordings may capture personally identifiable information and student performance data, creating privacy and compliance risks if collected or retained without safeguards.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown file describes broad educational assistance modes such as 'Setting Up a New Degree' and 'Student Mode' but does not define explicit invocation phrases, boundaries, or negative examples. Because the scope spans general career advice, study planning, tutoring, and curriculum generation, the trigger conditions are ambiguous and could overlap with ordinary study-related requests.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill instructs the agent to create directories and files under degrees/[name]/ without stating that this changes the local workspace or requiring explicit user confirmation. In an agent system with filesystem access, that can lead to unintended persistent modifications, clutter, or overwriting of existing planning data if invoked automatically or with an unsafe degree name.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The archive workflow directs the agent to move completed degrees to degrees/archive/[name]/ but provides no user-facing warning or confirmation for this filesystem mutation. Moving files can break references, hide active content, or overwrite archived material if names collide, making the lack of disclosure and safeguards unsafe in an autonomous agent context.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs the agent to store a detailed learner profile in a local file and continuously track behavioral and performance signals without any notice about consent, retention, minimization, or protection of that data. Even if the data is educational rather than financial, it can reveal habits, availability, cognitive patterns, and potentially sensitive inferences, creating privacy risk if stored insecurely or used beyond the user's expectations.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The phrase "Generate each morning" describes a broad activation condition without specifying how the skill is triggered, in what context it runs, or any constraints/exclusions. Because this is a markdown file, vague trigger wording is in scope and could overlap with general daily planning behavior rather than a clearly bounded invocation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The condition "When user has time to study" is ambiguous because it does not specify how the system determines that state or what user action activates the skill. Without precise trigger phrases, context restrictions, or exclusions, the description risks unintended activation in ordinary conversation or planning contexts.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The phrase "When user misses planned study" sets an imprecise activation condition because it does not define how a missed session is detected, when the adjustment runs, or whether user confirmation is required. In a markdown skill description, this lack of specificity can lead to unintended or surprising behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill proposes importing external calendars, detecting free slots, and respecting blocked times without any visible notice about what calendar data is accessed, stored, or shared. Because calendar entries can reveal sensitive personal, work, family, travel, and health-related information, silent or underexplained sync behavior creates a real privacy risk in this context.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill describes a tutor/parent dashboard that exposes detailed learner progress, struggles, and deadlines, but it provides no warning, consent model, or access-control expectations around sharing that data with third parties. In an education context, this can lead to privacy violations, especially where learner performance data may be sensitive or regulated, and the omission normalizes disclosure without clear user awareness.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.