Back to skill

Security audit

JEE

Security checks for vulnerabilities and agentic risk

Overview

This JEE study assistant is coherent and transparent, with the main caution that it stores study/profile details locally in plaintext.

Install only if you are comfortable with the agent keeping local JEE preparation records under ~/jee/. Avoid storing caste/category, mental-health notes, or parent/tutor reports unless you need them, and periodically review or delete the files if the device or backups are shared.

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

Plaintext Storage of Sensitive Educational and Personal Profile Data

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:23-34; related sensitive fields are defined in tracking.md:3-10, and wellbeing indicators appear in wellbeing.md:11-16
Vulnerability Type: Plaintext sensitive-data storage without defined access controls, retention limits, or consent boundaries
Risk Level: Medium

Vulnerable Code Snippets

SKILL.md:23-34:

markdown
## Data Storage

User data lives in `~/jee/`:

~/jee/ ├── profile.md # Goals, target rank, exam dates, category ├── subjects/ # Per-subject and chapter-wise progress ├── sessions/ # Study session logs ├── mocks/ # Mock test results and analysis ├── mistakes/ # Error log with patterns └── feedback.md # What works, what doesn't

text

tracking.md:3-10:

markdown
## Profile Setup (`~/jee/profile.md`)

```markdown
## Basic Info
- Target: JEE Main + Advanced
- Category: General / OBC-NCL / SC / ST / EWS
- User Type: 12th Student / Dropper / 11th Start
- Coaching: Allen Kota / FIITJEE / Online / Self-study
text

`wellbeing.md:11-16`:

```markdown
### Mental Health Warning Signs
- Sleep changes (too much or too little)
- Social withdrawal
- Statements like "I'm wasting my life" or "What's the point"
- Comparing excessively with peers
- Physical symptoms: headaches, stomach issues, fatigue

Technical Analysis

The Skill mandates persistent local storage under ~/jee/ and instructs the Agent to track educational performance, reservation category, coaching affiliation, mistakes, and wellbeing-related observations. These records may contain sensitive personal data, particularly caste or reservation category and mental-health-related statements.

The storage design does not specify:

  • Owner-only directory or file permissions.
  • User consent before persisting sensitive fields.
  • Data minimization requirements.
  • Retention periods or secu ...[truncated 1910 chars]
Remediation
View remediation

Remediation Suggestions

  1. Apply restrictive permissions

    • Create ~/jee/ with owner-only permissions equivalent to 0700.
    • Create individual records with permissions equivalent to 0600.
    • Refuse to use the storage directory if it is a symlink or is writable by other users.
  2. Require informed consent

    • Ask for explicit permission before persisting category or wellbeing information.
    • Allow users to use the Skill without storing these fields.
    • Clearly state which data will be stored, where it will be stored, and how it will be used.
  3. Minimize sensitive data

    • Store only information necessary for the requested study-planning function.
    • Do not retain raw mental-health statements by default.
    • Prefer temporary session context or coarse, non-sensitive indicators where persistence is unnecessary.
  4. Define retention and deletion controls

    • Establish a configurable expiration period for sessions, mock results, and wellbeing notes.
    • Provide commands to inspect, export, redact, and permanently delete stored information.
    • Remove stale records after the examination cycle unless the user opts in to continued retention.
  5. Separate sensitive records

    • Keep wellbeing information separate from ordinary progress logs.
    • Do not include category or wellbeing data in parent, tutor, PTM, batch, or dashboard outputs unless the student explicitly authorizes that disclosure.
  6. Protect generated reports

    • Redact sensitive profile fields by default.
    • Generate aggregate reports where individual-level information is unnecessary.
    • Warn users before writing records into synchronized or shared directories.
  7. Document the data-handling model

    • Add a privacy section describing collection, access, retention, sharing, and deletion.
    • Clarify that “track everything” applies only to necessary study metrics and does not authorize unrestricted ...[truncated 46 chars]
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill instructs the agent to persist detailed user educational data, including goals, category, exam dates, performance history, mistakes, and feedback, in a fixed directory under the user's home folder without any notice, consent, retention policy, or access controls. This creates a privacy and data-minimization issue because sensitive profiling data can accumulate silently and be exposed to other local processes, users, backups, or future agent actions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The file hard-codes 'Emergency Resources (India)' and India-specific hotline numbers, and earlier includes Hindi text ('ek aur saal de diya') without any opt-in or explicit statement that the skill is only for India-based users. This can violate language/locale policy because the guidance is region-specific but not clearly framed as a regional skill or presented with alternatives for other locales.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

This markdown file instructs the agent to track mistake patterns in ~/jee/mistakes/, which implies storing user study data on the local filesystem. The document does not disclose that user data will be written to disk or warn about the persistence/privacy implications of that behavior.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.