Back to skill

Security audit

Bill Monitor

Security checks for vulnerabilities and agentic risk

Overview

This bill-monitoring skill is purpose-aligned, but it asks an agent to scan Gmail daily for sensitive financial emails using broad terms without enough scoping or consent controls.

Review carefully before installing. Only enable this with a dedicated bill label or approved sender list, require confirmation before the first Gmail scan and before daily automatic processing, and make sure you can inspect, correct, and delete stored bill records. Avoid sending provider names, amounts, or bill history into web searches unless you explicitly choose to.

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:54
Finding
Overbroad Gmail Scanning May Access Unrelated Sensitive Messages## Vulnerability Details **File Location**: `SKILL.md`, lines 54–58; recurring execution is specified at line 91 **Vulnerability Type**: Excessive mailbox access beyond least privilege **Risk Level**: Medium ### Vulnerable Code Snippet ```md ### Step 1 — Gmail scan Scan for bill emails: "bill", "invoice", "statement", "direct debit", "standing order". Extract current amounts and providers. ``` The scan is configured to recur daily: ```md ### When a new bill arrives (Gmail scan, daily) ``` ### Technical Analysis The skill directs the agent to scan Gmail using broad, generic terms such as `invoice`, `statement`, and `direct debit`. These terms may occur in banking, healthcare, business, tax, legal, or other confidential correspondence unrelated to household utility monitoring. The instructions do not require: - A dedicated mailbox label or folder. - A provider or sender allowlist. - User approval before opening each matching message. - Restrictions on which message fields or attachments may be processed. - A mechanism for excluding unrelated financial correspondence. - Defined retention and deletion controls for extracted information. Consequently, an agent with Gmail access may process more mailbox content than is necessary for the declared bill-monitoring purpose. Daily execution increases the frequency and duration of this exposure. Although the skill includes prompt-injection defenses and private-channel delivery rules, those controls do not prevent unrelated messages from being accessed during the initial search and extraction process. ### Attack Path 1. The user enables the skill and grants it access to a Gmail integration. 2. The agent performs a mailbox search using broad terms such as `statement` or `invoice`. 3. An unrelated confidential message, such as a bank statement, medical invoice, or business invoice, matches one of those terms. 4. The agent opens or processes the matched message and extracts amounts and provider information. 5. The ...[truncated 1156 chars]
Remediation
## Remediation Suggestions 1. Require explicit user authorization before the first mailbox scan and clearly describe the search scope. 2. Restrict monitoring to a dedicated Gmail label or folder, such as `Bill Monitor`. 3. Require users to approve specific provider domains or sender addresses before automatic processing. 4. Replace generic mailbox-wide searches with constrained queries combining approved senders, labels, and expected bill terminology. 5. Present newly discovered senders to the user for confirmation before opening messages or extracting data. 6. Extract only the minimum required fields, such as provider, billing period, amount, and contract end date. 7. Do not open or process attachments unless the user explicitly enables attachment parsing for an approved sender. 8. Add exclusion rules for banking, healthcare, tax, legal, and business correspondence that is outside the skill's purpose. 9. Define retention controls that allow users to inspect, correct, export, and delete extracted bill records. 10. Log which approved message produced each bill record without copying unnecessary email content into local storage. 11. Apply the same sender and label restrictions to the daily recurring scan.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger list includes broad natural-language phrases such as 'energy bill' and 'monitor bills' that are likely to appear in ordinary conversation. This can cause unintended invocation of a skill that reads financial data or initiates bill-monitoring flows, increasing the chance of accidental access to sensitive information.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill instructs the agent to scan Gmail for bills and extract financial details, but it does not require a clear upfront warning or explicit consent for accessing email content. Because email may contain highly sensitive billing, account, and provider information, silent or implicit scanning creates a meaningful privacy and consent risk.

Intent-Code Divergence

Medium
Confidence
94% confidence
Finding
The skill promises that bill data is 'never shared externally' while also instructing the agent to use external web search for switching advice based on the user's bill type and region. That contradiction can cause financial-context data to be transmitted to third parties without clear consent, creating a privacy leak and misleading users about how their data is handled.

Static analysis

No suspicious patterns detected.