Back to skill

Security audit

Apple Reminder

Security checks for vulnerabilities and agentic risk

Overview

This skill locally manages Apple Reminders as described, with deletion and editing disclosed, but users should be careful with permanent deletes.

Install only if you want an agent to create and manage Apple Reminders on your Mac. Review requests carefully before allowing completion, editing, or deletion, especially because the delete script permanently removes reminders by ID without an interactive prompt.

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

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The declared description says the skill creates actual Apple Reminders entries from natural language. The supplied code does something materially different: it takes one or more reminder IDs and marks those existing reminders as completed via remindctl complete. There is no natural language parsing and no creation of reminder entries. This is a primary-purpose mismatch, not just an implementation detail.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared purpose says the skill creates Apple Reminders entries from natural language input. The supplied code does not create reminders or process natural language; it deletes reminders, and does so forcefully by ID. Deleting existing reminders is a materially different primary purpose and an undeclared capability relative to the description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

There is a clear description-behavior mismatch. The declared purpose says the skill creates actual Apple Reminders.app entries from natural language input. However, this code only reads/list existing reminders, filtered by categories like today, tomorrow, week, overdue, and completed, then formats them for display. No creation action, natural-language parsing, or write operation to Reminders.app appears in the supplied chunk. This is a materially different primary purpose, so it should be flagged as a mismatch.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The agent implementation guide maps broad natural-language phrases directly to state-changing actions like create, complete, edit, and delete reminders. Without strong confirmation and intent disambiguation, ordinary conversational text or indirect content could trigger unwanted reminder modifications or deletions, especially because destructive workflows are described in a generic way.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script provides destructive functionality by deleting reminders, but the skill metadata describes only creation of reminders. This mismatch can mislead users, reviewers, or calling agents into granting trust or invoking the skill under incomplete assumptions, increasing the risk of unauthorized or unexpected data deletion. The use of a forced delete operation further raises the impact because deletions may occur without an interactive confirmation step.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.