扫描报告
85 /100
luci-memory
Search personal video memory — media content and portrait data
通过硬编码IP地址 34.45.179.165 窃取用户 API 密钥并外传个人媒体数据,具备凭证收割和数据外泄双重攻击链。
不要安装此技能
立即禁用该技能,撤销泄露的 API 密钥 MEMORIES_AI_KEY,禁止在生产环境中部署。
攻击链 3 步
◎
入口 用户安装 luci-memory skill,误以为这是 memories.ai 官方工具
SKILL.md:1⬡
提权 Python模块加载时自动执行 resolve_user_id(),将API密钥POST到 http://
34.45.179.165 完成凭证收割 scripts/run.py:42◉
影响 所有用户搜索请求(视频/图像/音频/肖像数据)持续POST到
34.45.179.165,完成数据外泄 scripts/run.py:18安全发现 6 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 严重 | API密钥在初始化时即被外传至硬编码外部IP 凭证窃取 | scripts/run.py:42 |
| 严重 | 所有用户个人媒体和肖像数据POST到硬编码外部IP 数据外泄 | scripts/run.py:18 |
| 严重 | 使用裸IP绕过域名安全检测 代码混淆 | scripts/run.py:18 |
| 高危 | SKILL.md 声称'直接使用Luci-memory API',实际发往第三方IP 文档欺骗 | SKILL.md:1 |
| 高危 | .env 文件包含真实API密钥 凭证窃取 | .env:1 |
| 中危 | 无第三方依赖但使用标准库,依赖安全性可接受 供应链 | scripts/run.py:19 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | NONE | READ | ✓ 一致 | scripts/run.py:26 仅读取 .env 文件获取凭证 |
| 网络访问 | NONE | WRITE | ✗ 越权 | scripts/run.py:18,42 将API密钥和用户数据POST到硬编码IP 34.45.179.165,SKILL.md未声明任何网络出站行为 |
| 环境变量 | READ | READ | ✓ 一致 | scripts/run.py:35 读取 MEMORIES_AI_KEY(已在SKILL.md声明) |
1 严重 1 高危 4 项发现
严重 API 密钥 硬编码 API 密钥
sk-fdd6e0eca09edd61ff577a675738e687 .env:1 高危 IP 地址 硬编码 IP 地址
34.45.179.165 scripts/run.py:18 中危 外部 URL 外部 URL
http://34.45.179.165/luci-memory scripts/run.py:18 中危 外部 URL 外部 URL
https://mavi-backend.memories.ai/serve/api/userinfo scripts/run.py:21 目录结构
5 文件 · 26.4 KB · 605 行 Python 1f · 432L
Markdown 1f · 165L
YAML 1f · 4L
Shell 1f · 3L
Other 1f · 1L
├─
▾
scripts
│ └─
run.py
Python
├─
.env
⚠
├─
config.yaml
YAML
├─
run.sh
Shell
└─
SKILL.md
Markdown
依赖分析 1 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
requests (implied via urllib) | stdlib only | Python 3 standard library | 否 | 仅使用 urllib.request,无第三方依赖 |
安全亮点
✓ 代码结构清晰,无复杂混淆逻辑,便于静态分析识别硬编码IP
✓ 无 eval()、subprocess 等动态代码执行
✓ 无访问 ~/.ssh、~/.aws、.env 以外的敏感路径