安全决策报告

Email Analyzer

The skill contains hardcoded credentials (email authorization code) in plaintext within source code and documentation, presenting significant credential exposure risk if the repository becomes public or is shared.

安装决策优先 来源: 手动上传 扫描时间: 2026/4/5
文件 9
IOC 1
越权项 0
发现 4
最直接的威胁证据
01
Attacker obtains repository or accesses skill files reconnaissance · SKILL.md
02
Attacker extracts hardcoded authorization code from email_analyzer.py CONFIG 凭证访问 · email_analyzer.py
03
Attacker gains unauthorized access to [email protected] mailbox using harvested credentials 最终危害 · N/A

为什么得出这个结论

1/4 个维度触发
通过
声明与实际能力

声明资源与推断能力基本一致。

复核
隐藏执行与外联

提取到 1 个一般风险产物,需要结合上下文判断。

阻止
攻击链与高危发现

报告包含 3 步攻击链,另有 2 项高危或严重发现。

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

攻击链

01
Attacker obtains repository or accesses skill files

reconnaissance · SKILL.md:1

02
Attacker extracts hardcoded authorization code from email_analyzer.py CONFIG

凭证访问 · email_analyzer.py:17

03
Attacker gains unauthorized access to [email protected] mailbox using harvested credentials

最终危害 · N/A

风险分是怎么被拉高的

Hardcoded credentials in source code +25

Authorization code 'WUEw8qhBwjzpUAZW' hardcoded in email_analyzer.py CONFIG dict

Credentials exposed in documentation +20

Full authorization code documented in SKILL.md lines 18-19

Credential stored in plaintext +15

No encryption or obfuscation of sensitive authentication data

最关键的证据

高危 凭证窃取

Hardcoded Email Authorization Code

The IMAP authorization code 'WUEw8qhBwjzpUAZW' for [email protected] is hardcoded in plaintext within email_analyzer.py CONFIG dictionary. If the repository is exposed or shared, this credential could be harvested.

email_analyzer.py:17
Move credentials to environment variables: os.environ.get('EMAIL_AUTH_CODE')
高危 文档欺骗

Credentials Exposed in Documentation

SKILL.md explicitly documents the full authorization code in the固化配置 table (lines 18-19), making it trivial to extract credentials from documentation alone.

SKILL.md:18
Replace actual credential with placeholder: '授权码 | $EMAIL_AUTH_CODE'
中危 敏感访问

Email Content Access Without User Consent Flow

The view_email.py script fetches full RFC822 email content including body text. While documented, there's no user confirmation step before retrieving full email content.

view_email.py:1
Add user confirmation prompt before fetching full email body
低危 凭证窃取

Credentials Not Pinned in Dependencies

The imapclient library is used without explicit version pinning in requirements.txt (no requirements.txt found).

email_analyzer.py:6
Add requirements.txt with pinned versions: imapclient==2.3.1

声明能力 vs 实际能力

网络访问 通过
声明 READ
推断 READ
IMAPClient connects to imap.126.com for email access
文件系统 通过
声明 WRITE
推断 WRITE
Writes JSON backup files and analysis reports
命令执行 通过
声明 WRITE
推断 WRITE
Shell script wraps Python execution; all documented

依赖与供应链

包名版本来源漏洞备注
imapclient unpinned pip import No requirements.txt or version constraint found

文件构成

9 个文件 · 1174 行
Python 7 个文件 · 856 行Markdown 1 个文件 · 211 行Shell 1 个文件 · 107 行
需关注文件 · 3
email_analyzer.py Python · 301 行
Hardcoded Email Authorization Code · Credentials Not Pinned in Dependencies
SKILL.md Markdown · 211 行
Credentials Exposed in Documentation · [email protected]
view_email.py Python · 111 行
Email Content Access Without User Consent Flow
其他文件 · delete_selective.py · email-analyzer.sh · view_details.py · delete.py · backup.py · verify.py

安全亮点

No reverse shell or C2 infrastructure detected
No data exfiltration to external IPs beyond legitimate IMAP connection
All shell operations are documented and necessary for the stated purpose
Deletion operations require explicit --confirm flag and manual 'yes' input
Backup functionality preserves data before deletion
No obfuscation techniques (base64, eval) detected
IMAP connection is to legitimate 126.com server only