低风险 — 风险评分 22/100
上次扫描:1 天前 重新扫描
22 /100
gkeep-notes
Google Keep notes management via gkeepapi. List, search, create, manage notes, add items to notes.
Legitimate Google Keep CLI tool with proper credential handling and no malicious behavior, though documentation gaps around filesystem write access and supply chain concerns exist.
技能名称gkeep-notes
分析耗时48.6s
引擎pi
可以安装
Accept for use. Consider pinning `google` package to explicit version to eliminate typosquatting risk.

安全发现 3 项

严重性 安全发现 位置
中危
Unpinned 'google' package with typosquatting potential 供应链
requirements.txt specifies 'google' without version constraint. This is a top-level package that could be typosquatted (e.g., 'gooogle', 'goggle'). The skill also does not list gpsoauth which is imported by generate_token.py.
google
→ Pin the 'google' package to a specific version or replace with explicit sub-packages: google-auth-oauthlib, google-api-python-client
requirements.txt:3
低危
Filesystem write access not declared in SKILL.md 文档欺骗
SKILL.md does not explicitly declare that the skill writes to ~/.config/gkeep/token.json. While this is the expected credential storage mechanism, it should be documented in the declared capabilities.
SKILL.md declares only bins: [python3] but does not mention filesystem WRITE for token storage
→ Add 'filesystem: WRITE' to declared capabilities or clarify that token.json is user-managed, not skill-managed
SKILL.md:1
低危
Token file stored at user home directory 敏感访问
Credentials (Google email + master token) are stored in ~/.config/gkeep/token.json with 0o600 permissions. This is appropriate, but ~/.config is in the user home tree which is a sensitive area.
TOKEN_FILE = Path.home() / '.config' / 'gkeep' / 'token.json'
→ No action needed - file permissions are correctly set to 0o600 to prevent other users from reading the token
gkeep.py:56
资源类型声明权限推断权限状态证据
文件系统 NONE WRITE ✗ 越权 gkeep.py:56-62 writes ~/.config/gkeep/token.json; generate_token.py writes nothi…
网络访问 READ READ ✓ 一致 gkeep.py uses gkeepapi to communicate with Google Keep servers
命令执行 WRITE WRITE ✓ 一致 SKILL.md: Execution template shows 'source venv/bin/activate && python gkeep.py'
环境变量 NONE READ ✓ 一致 gkeep.py:39 reads GKEEP_PASSWORD from environment for optional login
技能调用 NONE NONE No skill invocation found
剪贴板 NONE NONE No clipboard access found
浏览器 NONE NONE No browser automation found
数据库 NONE NONE No database access found
2 项发现
🔗
中危 外部 URL 外部 URL
https://accounts.google.com/EmbeddedSetup
README.md:30
🔗
中危 外部 URL 外部 URL
https://myaccount.google.com/apppasswords
gkeep.py:50

目录结构

5 文件 · 13.2 KB · 465 行
Python 2f · 326L Markdown 2f · 135L Text 1f · 4L
├─ 🔑 generate_token.py Python 28L · 854 B
├─ 🐍 gkeep.py Python 298L · 7.9 KB
├─ 📝 README.md Markdown 57L · 2.0 KB
├─ 📄 requirements.txt Text 4L · 72 B
└─ 📝 SKILL.md Markdown 78L · 2.3 KB

依赖分析 5 项

包名版本来源已知漏洞备注
gkeepapi >=0.14.0 pip Version lower bound specified, acceptable
google * pip No version constraint - supply chain risk
google-auth-oauthlib * pip No version constraint
google-api-python-client * pip No version constraint
gpsoauth not listed pip Imported in generate_token.py but missing from requirements.txt

安全亮点

✓ Token file is correctly secured with chmod 0o600 (readable only by owner)
✓ OAuth 2.0 flow is documented with legitimate Google endpoints (accounts.google.com)
✓ No exfiltration of credentials to third parties
✓ Uses official gkeepapi library (maintained, legitimate)
✓ No base64 encoding, obfuscation, or suspicious execution patterns
✓ Shell commands are declared in execution template