Back to skill

Security audit

Criticaster

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly provides product-review search, but it also tells agents to submit requests/upvotes with a user email and to complete email-code verification autonomously if mailbox access exists.

Install only if you are comfortable with the skill using Criticaster's external API and avoid granting it mailbox access. Product searches appear fine, but request/upvote features should require explicit approval before sending your email, and verification codes should be retrieved and provided by you manually.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:228
Finding
Autonomous Access to Email Verification Codes Exceeds Least Privilege## Vulnerability Details **File Location**: `SKILL.md`, lines 228–249 **Vulnerability Type**: Unauthorized access to a sensitive communication channel **Risk Level**: Medium **Complete vulnerable snippet**: ```markdown **Step 2 — Verify via email:** A 6-digit verification code is sent to the provided email. The user (or agent, if it has email access) must retrieve this code. ``` POST /api/product-requests/verify Content-Type: application/json { "requestId": "abc123", "verificationCode": "482917" } ``` **Response:** ```json { "success": true, "message": "Request verified successfully" } ``` **Important notes:** - The verification code expires after 24 hours - The verify endpoint is rate-limited to 5 attempts per IP - If you have email access, you can complete this flow autonomously - If not, ask the user: "I've submitted your request. Please check your email for a 6-digit verification code from Criticaster." ``` ### Technical Analysis The skill explicitly authorizes an agent with mailbox access to retrieve a one-time verification code and use it to complete an externally verified action autonomously. Access to a user's email is a sensitive privilege that is not required for the skill's primary purpose of searching, comparing, and recommending products. This guidance violates the principle of least privilege and removes a meaningful user-confirmation boundary. A verification code ordinarily demonstrates that the mailbox owner approves or controls the transaction. Allowing the agent that initiated the operation to read and submit the code collapses initiation and authorization into one actor. The documented workflow applies directly to product-request verification and is also referenced as the model for upvote verification. The issue does not establish that the skill can acquire mailbox permissions by itself; exploitation requires the host agent to have preexisting email access. Nevertheless, o ...[truncated 1608 chars]
Remediation
## Remediation Suggestions 1. Remove the instruction permitting autonomous mailbox access and code retrieval. 2. Require the user to retrieve and manually provide the verification code for every product request or upvote. 3. Obtain explicit, transaction-specific user consent before submitting the user's email address or initiating any state-changing API request. 4. Clearly present the intended request text, request type, recipient service, and privacy implications before submission. 5. Treat verification codes as sensitive authentication data and prohibit storing them in logs, memory, or persistent state. 6. If mailbox integration is unavoidable, require narrowly scoped access, explicit approval immediately before reading the relevant message, strict sender and recipient matching, minimal message retrieval, and prevention of access to unrelated emails. 7. Keep product search and recommendation functions available without requiring email access or state-changing operations.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
Authorizing the agent to access email verification codes is unjustified for a product review search skill and materially exceeds least-privilege expectations. Email access can expose unrelated personal data and enables the agent to complete external account-like workflows, making misuse or overreach significantly more dangerous in this context.

Missing User Warnings

High
Confidence
98% confidence
Finding
Allowing autonomous retrieval and use of email verification codes introduces a major privacy boundary violation without clear warning or consent. In context, this is especially dangerous because a benign-seeming shopping/recommendation skill is instructing access to a highly sensitive channel unrelated to normal product search, increasing the risk of over-collection and user deception.

Description-Behavior Mismatch

Medium
Confidence
94% confidence
Finding
The skill is presented as a product-review search tool, but it also instructs the agent to perform write actions using the user's email address to submit requests and verify them. This expands the skill's effective privileges and user-impact surface beyond the stated purpose, creating a deceptive capability mismatch that could lead to unexpected external actions on the user's behalf.

Context-Inappropriate Capability

Medium
Confidence
91% confidence
Finding
Submitting product requests and upvotes are write operations that go beyond the core need of searching and summarizing reviews. Even if low-risk individually, these actions create an unnecessary external side-effect surface and can be abused for spam, unsolicited submissions, or actions the user did not clearly authorize.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill instructs sending the user's email address to an external service for request submission without a clear privacy warning or consent step. Email addresses are personal data, and transmitting them to a third party for a non-essential feature in a search skill creates avoidable privacy and trust risks.

Description-Behavior Mismatch

Medium
Confidence
97% confidence
Finding
The documentation authorizes autonomous email-retrieval behavior despite the skill being described as a search/recommendation tool. That hidden escalation from search to mailbox-mediated verification is security-relevant because it can normalize access to unrelated sensitive resources and trigger actions the user did not reasonably expect from this skill.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The upvote flow also sends the user's email address to an external endpoint without an explicit privacy warning. Because upvoting is ancillary to the skill's main function, sharing personal data for it without clear consent is disproportionate and can surprise users.

Static analysis

No suspicious patterns detected.