Back to plugin
Pluginv2.9.1

ClawScan security

bee-push-email · ClawHub's context-aware review of the artifact, metadata, and declared behavior.

Scanner verdict

BenignMar 31, 2026, 7:59 AM
Verdict
benign
Confidence
high
Model
gpt-5-mini
Summary
The plugin's code, instructions, and requirements are internally consistent with a real-time IMAP IDLE email watcher that pushes notifications and can trigger agent actions — the behaviors and data access it needs match its stated purpose.
Guidance
Before installing: - Understand where your IMAP credentials will live: the plugin stores the email address and password (recommended: app-specific password) in openclaw.json in plain text. Follow the plugin's advice to restrict file permissions (chmod 600) and consider using an app-specific password, not your main account password. - Review and limit rules that use agent_command, reply, or ask_reply. Those actions send email content to the agent/LLM and can cause the agent to perform actions — only enable them if you trust the plugin and have tight rule criteria. - Note the plugin will try to use an existing Telegram bot token from the Gateway config to send direct notifications. If you prefer, create a dedicated bot/token for this plugin or ensure your existing bot token is stored in a location you accept the plugin reading. - The install flow asks you to run npm install in the plugin folder. The SKILL.md recommends --ignore-scripts; keep that flag to avoid running package lifecycle scripts from unknown packages. - Audit the plugin source (you have full TypeScript source) or run it in a controlled environment before trusting it with production inboxes. Consider setting auto-reply mode to 'false' initially and test with a throwaway mailbox and test emails. - If you have low trust in the plugin origin (source unknown, no homepage), treat it as untrusted code: review the repo thoroughly or avoid installing it system-wide.

Review Dimensions

Purpose & Capability
okName/description (IMAP IDLE email push with a rule engine) align with the code and runtime behavior: it opens an IMAP IDLE connection, reads mail metadata, evaluates rules, moves/flags messages, sends notifications via Telegram, and can enqueue events to the agent. Declared npm deps (imapflow, zod) and TypeScript source are appropriate for this purpose.
Instruction Scope
noteRuntime instructions (SKILL.md) focus on configuring IMAP credentials, rules, and where to store them; they tell the agent to write config to openclaw.json and restart the Gateway. The plugin can enqueue email content to the agent LLM (agent_command, reply, ask_reply) which is powerful and can cause the agent to take arbitrary actions based on incoming emails. The code contains explicit prompt-injection mitigations and warns the user to review rules, but users should be aware that email content may be sent to the LLM when those actions are used.
Install Mechanism
okNo binary downloads or remote installers are embedded in the registry entry. The SKILL.md recommends running 'npm install --ignore-scripts' in the plugin directory to install imapflow and zod — this is standard and the use of --ignore-scripts reduces lifecycle-script risk. There is no unusual or opaque download URL; overall install risk is low for a Node plugin.
Credentials
noteThe registry lists no required env vars, which matches metadata. The plugin stores IMAP credentials (email/password) in openclaw.json (cleartext) and suggests chmod 600 — storing credentials in config is expected but sensitive. The code also attempts to read a Telegram bot token from the OpenClaw config (flatConfig or api.config.plugins.entries.telegram.config), which is reasonable for delivering direct Telegram notifications but means the plugin may access bot tokens stored by other plugins/config entries; users should be aware of that implicit credential access.
Persistence & Privilege
noteThe plugin registers an in-process background service (IMAP IDLE watcher) and hooks into the Gateway's command registration and enqueueSystemEvent APIs; this is necessary for real-time notifications. It does not set always:true. Because it can enqueue system events that wake the agent and can trigger agent-driven actions from incoming emails, it has a meaningful runtime privilege — appropriate for its purpose, but users should carefully control rules (especially agent_command and auto-reply) to avoid unintended actions.