扫描报告
5 /100
welderjustin-imap-smtp-email
Read and send email via IMAP/SMTP. Check for new/unread messages, fetch content, search mailboxes, mark as read/unread, and send emails with attachments.
功能完整、文档与实现一致的合法 IMAP/SMTP 邮件工具,具备完善的路径白名单隔离和凭证保护机制。
可以安装
可安全使用。建议在部署时通过环境变量设置 ALLOWED_READ_DIRS 和 ALLOWED_WRITE_DIRS,避免使用默认路径。
安全发现 2 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 低危 | 第三方依赖版本未完全锁定 供应链 | package.json:16 |
| 低危 | setup.sh 交互式收集凭证写入 .env 凭证窃取 | setup.sh:90 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 网络访问 | READ | READ | ✓ 一致 | scripts/imap.js:connect() 连接 IMAP 服务器; scripts/smtp.js:sendEmail() 通过 SMTP 发送邮件 |
| 文件系统 | NONE | READ+WRITE | ✓ 一致 | |
| 环境变量 | READ | READ | ✓ 一致 | 仅读取 IMAP_HOST/USER/PASS、SMTP_HOST/USER/PASS 等邮件配置变量,无凭证外泄 |
| 命令执行 | NONE | READ | ✓ 一致 |
4 项发现
中危 外部 URL 外部 URL
https://myaccount.google.com/apppasswords SKILL.md:66 提示 邮箱 邮箱地址
[email protected] SKILL.md:33 提示 邮箱 邮箱地址
[email protected] SKILL.md:43 提示 邮箱 邮箱地址
[email protected] scripts/imap.js:48 目录结构
6 文件 · 33.8 KB · 1268 行 JavaScript 2f · 822L
Markdown 1f · 211L
Shell 1f · 199L
JSON 2f · 36L
├─
▾
scripts
│ ├─
imap.js
JavaScript
│ └─
smtp.js
JavaScript
├─
_meta.json
JSON
├─
package.json
JSON
├─
setup.sh
Shell
└─
SKILL.md
Markdown
依赖分析 5 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
imap | ^0.8.19 | npm | 否 | 已发布但维护不活跃的最后版本 |
imap-simple | ^5.1.0 | npm | 否 | 范围版本,建议固定版本 |
mailparser | ^3.9.3 | npm | 否 | 范围版本,建议固定版本 |
nodemailer | ^7.0.13 | npm | 否 | 成熟稳定的邮件发送库 |
dotenv | ^16.6.1 | npm | 否 | 范围版本,建议固定版本 |
安全亮点
✓ 完整的文件路径白名单隔离:ALLOWED_READ_DIRS 和 ALLOWED_WRITE_DIRS 防止路径遍历攻击
✓ sanitizeFilename() 防止 ../ 路径遍历写入
✓ 凭证仅用于本地 IMAP/SMTP 连接,无外传行为
✓ 网络连接仅限配置的 IMAP/SMTP 服务器,无其他出站连接
✓ 代码结构清晰,无 Base64 编码、eval、shell 管道等可疑模式
✓ IMAP/SMTP 配置与文档完全一致,无阴影功能
✓ 凭证读取后明文内存使用,未尝试写入进程外存储