Back to skill

Security audit

OfferCatcher

Security checks across malware telemetry and agentic risk

Overview

OfferCatcher mostly does its stated job, but it reads sensitive email content and includes unguarded reminder-deletion tools that users should review carefully before installing.

Install only if you are comfortable granting Apple Mail and Reminders automation access and having recent email content processed by the OpenClaw LLM workflow. Configure a specific account and mailbox, inspect scan output first, use dry-run before applying events, prefer the ClawHub install path over curl-to-bash, and do not expose the Reminders bridge delete or clear-list commands to unattended automation.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (17)

subprocess module call

Medium
Category
Dangerous Code Execution
Content
def run_text(cmd: list[str], timeout: int | None = None) -> str:
    """执行命令并返回输出。"""
    try:
        proc = subprocess.run(
            cmd, capture_output=True, text=True, encoding="utf-8", errors="replace", timeout=timeout
        )
        if proc.returncode != 0:
Confidence
94% confidence
Finding
proc = subprocess.run( cmd, capture_output=True, text=True, encoding="utf-8", errors="replace", timeout=timeout )

Lp3

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding
The skill declares no permissions even though its documented behavior requires shell execution, reading email content, and writing event files or reminders. This is dangerous because users and any permission-gating system cannot make an informed consent decision about access to sensitive mail data and local system capabilities.

Tp4

High
Category
MCP Tool Poisoning
Confidence
87% confidence
Finding
The documented purpose is narrowly framed as parsing recruiting emails into reminders, but the detected behavior suggests broader access to Apple Mail and reminder management capabilities, including listing accounts/mailboxes and modifying unrelated reminders. That mismatch increases the risk of overbroad data access and unintended destructive actions because users may authorize the skill under a narrower understanding than what it can actually do.

Description-Behavior Mismatch

Medium
Confidence
87% confidence
Finding
The skill description says it turns recruiting emails into reminders, but this file exposes general-purpose reminder administration commands including add, update, delete, list, clear-list, and sync-plan. That scope expansion increases the blast radius of any misuse or compromise because the component can manipulate arbitrary reminders instead of only creating narrowly scoped interview-related items.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
`clear_list` deletes every reminder in the specified list in a loop, enabling irreversible bulk destruction of user data. This is not clearly necessary for converting recruiting emails into reminders, so the capability is disproportionately dangerous relative to the stated purpose.

Context-Inappropriate Capability

Medium
Confidence
85% confidence
Finding
This script enumerates all Apple Mail accounts and mailboxes, which exposes a broad inventory of the user's mail setup beyond the minimum needed to create reminders. Even without reading message bodies, mailbox/account names can reveal sensitive providers, employers, projects, or personal categories, and broad mail access increases privacy risk in a skill whose stated purpose is reminder creation from recruiting emails.

Context-Inappropriate Capability

Medium
Confidence
99% confidence
Finding
scan_emails exports raw email bodies, sender addresses, subjects, mailbox names, and account names as JSON specifically for downstream LLM parsing. Recruiting emails frequently contain sensitive personal data, interview links, deadlines, tokens, or internal company details, so broad export materially expands the privacy and data-exfiltration surface beyond simple reminder syncing.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The README explicitly describes scanning email contents and sending them through an LLM pipeline to extract recruiting events, but it does not clearly warn users that potentially sensitive mailbox data will be processed and may be exposed to third-party AI services. In this skill context, that omission matters because recruiting emails often contain personal data, interview links, and deadlines, so users may unknowingly grant broad access to sensitive communications.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The workflow says raw emails are scanned and then parsed by an LLM, but the skill does not clearly warn users that full email bodies may be transmitted to a model. Recruiting emails often contain personal data, interview links, addresses, candidate IDs, and other sensitive information, so undisclosed model sharing creates a meaningful privacy and data-handling risk.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The delete operation removes reminders immediately based only on an ID and returns success, with no confirmation, preview, or user-facing warning. In an agent-driven context, silent destructive actions are risky because a bad prompt, mapping error, or malicious plan could delete legitimate reminders without the user's awareness.

Missing User Warnings

High
Confidence
98% confidence
Finding
The bulk `clear-list` command performs mass deletion without any confirmation barrier or warning, making accidental or malicious invocation highly destructive. Because it loops until the list is empty, a single call can wipe an entire reminders list very quickly.

Missing User Warnings

High
Confidence
96% confidence
Finding
`sync_plan` can trigger `clear_list` when `--clear` is supplied, combining bulk deletion with automated plan processing. In the skill context, this is especially dangerous because an agent workflow may invoke sync operations routinely, so a single flag or orchestration mistake could wipe reminders before recreating only a subset.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The script accesses and exports Mail account/mailbox metadata without any user-facing notice, confirmation, or contextual explanation. Silent collection of mail structure is a privacy issue because users may not expect a reminder-sync skill to inspect their full Mail configuration, and macOS automation prompts alone do not provide sufficient purpose-specific disclosure.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The scan mode prints raw email content and metadata without any built-in consent prompt, warning banner, or disclosure in the execution path. In a skill intended to convert recruiting emails into reminders, silently exposing full message content to downstream processing increases the chance of privacy violations and accidental leakage.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The script enumerates emails from Apple Mail, extracts subject, sender, timestamps, and body content, then emits that data as JSON with no consent prompt, minimization beyond a simple body cap, or visibility controls. In the context of a recruiting-email parsing skill, this behavior directly exposes sensitive mailbox contents and metadata to downstream components, creating a meaningful privacy and data-exfiltration risk if invoked unexpectedly or by another tool.

Ssd 3

Medium
Confidence
97% confidence
Finding
The module docstring explicitly describes a design where mail is scanned and returned as raw JSON for LLM parsing. Because the data path is intentionally designed to expose plain-language email contents to another component, sensitive information in recruiting emails can be disclosed outside the minimum scope necessary for reminder creation.

Ssd 3

Medium
Confidence
99% confidence
Finding
The actual scan output includes body, sender, subject, received time, account, and mailbox in one JSON object per message. This packaging is particularly dangerous in skill context because a mail-to-reminders tool should only need scheduling details, whereas this implementation forwards broad mailbox context and message content that may contain highly sensitive personal or corporate data.

VirusTotal

58/58 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.