email-cron-handler

WarnAudited by ClawScan on May 18, 2026.

Overview

This skill is openly designed for email-driven automation, but it gives scheduled emails broad control over an AI agent while handling mailbox credentials and authorization too loosely.

Install only if you intentionally want a mailbox to control an agent. Before use, require a non-empty verified sender whitelist, avoid putting email passwords in prompts or cron payloads, restrict what emailed commands can do, and add a clear way to stop the scheduled jobs.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A whitelisted, compromised, or spoofed sender could cause the agent to attempt unintended tasks and return the results by email.

Why it was flagged

The template explicitly makes external email content authoritative instructions for the agent and does not limit those instructions to a narrow safe command set.

Skill content
⚠️ 核心任务:读取 {WHITELIST_SENDER} 发来的邮件,邮件内容是你需要执行的指令! ... b. 尝试执行该指令(查询天气/搜索信息/执行操作等)
Recommendation

Treat email bodies as untrusted input; require a strict command allowlist, stronger sender authentication, and explicit approval for sensitive or irreversible actions.

What this means

The scheduled job could repeatedly perform unintended operations from email commands without the local user reviewing each request.

Why it was flagged

The documented workflow schedules autonomous agent turns that fetch email, execute requested instructions, and reply, with no per-action approval or constrained tool boundary.

Skill content
cron add --name "邮件指令-白天" ... --schedule "expr" "* 7-23 * * *" ... --payload '{"kind":"agentTurn","message":"...执行指令并回复结果..."}'
Recommendation

Constrain the actions the cron job may perform, require confirmation for destructive/account-changing/public actions, and log or preview replies before sending them.

What this means

A configuration mistake could turn every recent inbox message into a possible agent command source.

Why it was flagged

The main authorization control fails open: if whitelist_sender is blank or misconfigured, the code processes messages from any sender.

Skill content
whitelist = config.get('whitelist_sender', '').lower(); if whitelist and sender != whitelist: continue
Recommendation

Fail closed when no whitelist is configured, validate configuration at startup, support explicit approved sender lists, and verify sender identity more strongly than a From-header comparison.

What this means

Mailbox credentials may be stored in scheduler configuration or exposed to model/session logs, and they grant both email-reading and email-sending authority.

Why it was flagged

The reference template places mailbox credentials directly into the agent instruction/cron payload rather than using a declared secure credential mechanism.

Skill content
IMAP登录: user={EMAIL}, password={PASSWORD}, host={IMAP_HOST}, port={IMAP_PORT}; SMTP登录: user={EMAIL}, password={PASSWORD}, host={SMTP_HOST}, port={SMTP_PORT}
Recommendation

Use a secret store or environment variables with least-privilege app passwords, declare the credential requirement in metadata, and avoid embedding passwords in prompts.

What this means

Once configured, the agent may continue checking email and acting on remote instructions even when the user is not present.

Why it was flagged

The skill documents persistent scheduled agent execution for most of the day and night, but does not document a kill switch, expiry, rate limit, or safe teardown.

Skill content
白天模式(每分钟) ... 7:00-23:00,每分钟执行 ... 夜间模式(每30分钟)
Recommendation

Add clear enable/disable and uninstall instructions, rate limits, audit logs, and an expiration or confirmation requirement for long-running automation.