Back to skill

Security audit

QuizMe

Security checks for vulnerabilities and agentic risk

Overview

This skill is a local tech quiz helper whose storage behavior is disclosed and mostly limited to its own quiz folder.

Install only if you are comfortable with the skill creating `~/quizme/` files that record your quiz topics, progress, and generated questions. Avoid running the bundled generator script unless you intentionally want to use the OpenAI API and have reviewed its dependency and API-key handling.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
scripts/generate_bank.py:75
Finding

Unpinned Third-Party Dependency Installation

Content
View full analysis
list[dict]: try: from openai import OpenAI except ImportError: print("[ERROR] openai package not installed. Run: pip3 install openai") sys.exit(1) api_key = os.environ.get("OPENAI_API_KEY") if not api_key: print("[ERROR] OPENAI_API_KEY environment variable not set") ``` ### Technical Analysis The script instructs users to install the `openai` package using `pip3 install openai` without specifying an audited version, using a lockfile, or verifying package hashes. This causes the installed code to depend on whichever package release and transitive dependencies the package index serves at installation time. Python package installation and import can execute package-controlled code under the invoking user's privileges. If the upstream package, a transitive dependency, the configured package index, or the dependency resolution process is compromised, an attacker could introduce arbitrary code into the environment. The script also implements an external OpenAI API workflow even though `SKILL.md` directs the agent to generate questions inline and states, “Do not call any external script or API.” Although the inspected code does not transmit the API key itself, it uses that key for authentication and transmits the selected quiz topic, difficulty, and generated prompt to OpenAI. This behavior should either be removed as unnecessary or explicitly disclosed and consented to. ### Attack Path 1. A user invokes `scripts/generate_bank.py` in an environment where the OpenAI SDK is absent. 2. The script directs the user to execute `pip3 install openai`. 3. Pip resolves and downloads the current package and its dependencies ...[truncated 1258 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill instructs reading from the home directory, writing persistent JSON files, and deleting bank files, but it declares no explicit tool scope or permissions. That mismatch increases the chance of over-broad runtime access or undeclared file modification behavior, which is risky because the skill persists user-derived content and manipulates local state.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger phrases are very broad and overlap with normal educational or help-seeking language such as 'teach me X' or 'I want to learn X'. This can cause unintended invocation, leading the agent to start persistent file operations and quiz workflows when the user may have intended a general conversation rather than activating this skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill persistently writes topics and progress to local files and deletes bank files during graduation, but it does not require clear user notice or consent before modifying local storage. This is dangerous because users may unknowingly leave durable records of interests, performance, and session history, and file deletion changes local state in a way that may be surprising or irreversible.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.