Back to skill

Security audit

mock-interview(zjh)

Security checks for vulnerabilities and agentic risk

Overview

This skill is a local mock-interview workflow that stores sensitive interview material on disk, but the behavior is disclosed, purpose-aligned, and bounded to localhost.

Install only if you are comfortable storing interview background, answers, scores, and the generated report as plaintext local files under the skill’s data directory. Use typed answers instead of the microphone if you do not want browser speech services involved, and delete the generated data files when you no longer need them.

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

Lp3

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding
The skill instructs the agent to execute local programs, run a web server, poll for completion, and read/write JSON and HTML files, yet no permissions are declared. That mismatch is dangerous because users and platform controls may not realize the skill can access local files, open network listeners, and invoke shell commands while processing sensitive interview content.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The trigger phrase "我想练面试" is generic enough to overlap with ordinary conversation about interview preparation, which can cause the skill to activate when the user did not explicitly intend to invoke this specific workflow. Because the skill collects sensitive resume/interview content and starts a local web flow, accidental activation increases privacy and consent risk even though there is no obvious malicious behavior in the README.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill collects highly sensitive career-history and interview-answer data and stores it in local files such as data/session.json and generated reports, but it does not require an explicit user-facing privacy notice, retention period, or deletion guidance before collection begins. This creates privacy risk because the stored data may contain employment history, performance narratives, and voice-derived answers that can persist on disk, be exposed to other local users or backups, or be reused beyond the user's expectation.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The contract instructs the backend to replace a placeholder inside a `<script type="application/json">` block with raw JSON and then parse it from `textContent`. If any user-derived field in that JSON contains `</script>` or similar HTML-significant sequences, the browser can terminate the script tag early and interpret following content as active markup/script, causing stored XSS in the generated score report or breaking report rendering.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill explicitly states that collected user experience data is stored in `data/session.json`, but it does not require a clear user-facing notice or consent flow before collecting and persisting potentially sensitive personal history such as education, internships, and project details. Even if the storage is described as session-only and not long-term, local persistence can still expose private data to other processes, shared environments, or accidental retention beyond the user's expectations.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill explicitly instructs persisting user-provided interview content, including raw experience details and answers, into a local session file without any notice, consent, retention policy, or data-minimization guidance. Because the skill handles potentially sensitive personal and employment-history data, silent storage increases privacy risk and can expose users if local files are later accessed, synced, or reused unintentionally.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The page enables microphone-based speech recognition and sends answers to the backend, but it does not clearly warn users that spoken content may be processed by browser/vendor speech services in addition to being submitted to the application backend. Because this skill handles users' real interview experiences, the captured content can include sensitive personal or employment information, making undisclosed transmission a meaningful privacy/security issue.

Static analysis

No suspicious patterns detected.