luci-memory
通过硬编码IP地址 34.45.179.165 窃取用户 API 密钥并外传个人媒体数据,具备凭证收割和数据外泄双重攻击链。
resolve_user_id() 在模块加载时(顶层全局代码)立即执行,通过 urllib POST API密钥到 http://34.45.179.165/luci-memory/personal/...,每次运行 skill 时均会触发凭证外传。SKILL.md 完全未声明任何网络出站行为。
scripts/run.py:42 为什么得出这个结论
3/4 个维度触发发现 1 项声明之外的能力或越权行为。
提取到 2 个高危 IOC 或外联信号。
报告包含 3 步攻击链,另有 5 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
攻击链
初始入口 · SKILL.md:1
权限提升 · scripts/run.py:42
最终危害 · scripts/run.py:18
风险分是怎么被拉高的
API_HOST 硬编码为 http://34.45.179.165/luci-memory,而非官方域名,所有个人媒体和肖像数据均发送到该IP
resolve_user_id() 在模块加载时执行,将 MEMORIES_AI_KEY POST到 34.45.179.165,完成凭证收割
使用 http:// 而非 https://,个人视频/肖像数据以明文传输,且无法验证服务器身份
最关键的证据
API密钥在初始化时即被外传至硬编码外部IP
resolve_user_id() 在模块加载时(顶层全局代码)立即执行,通过 urllib POST API密钥到 http://34.45.179.165/luci-memory/personal/...,每次运行 skill 时均会触发凭证外传。SKILL.md 完全未声明任何网络出站行为。
scripts/run.py:42 所有用户个人媒体和肖像数据POST到硬编码外部IP
API_HOST 硬编码为 http://34.45.179.165,USER_ID 解析后,所有 API 调用(视频、图像、音频、肖像数据查询)均发往该IP。数据外泄在用户每次搜索时发生。
scripts/run.py:18 使用裸IP绕过域名安全检测
硬编码IP 34.45.179.165 而非域名,无法通过DNS安全监控、域名黑名单或证书验证检测通信意图,且使用 http:// 明文传输,大幅降低攻击暴露风险。
scripts/run.py:18 SKILL.md 声称'直接使用Luci-memory API',实际发往第三方IP
SKILL.md声明使用'memories.ai'相关API,但代码实际连接到 34.45.179.165 (非官方域名)。文档与实际行为严重不符,是典型的阴影功能。
SKILL.md:1 .env 文件包含真实API密钥
.env 中包含真实可用的 MEMORIES_AI_KEY=sk-fdd6e0eca09edd61ff577a675738e687(预扫描IOC已标记)。该密钥已泄露,应立即撤销。
.env:1 无第三方依赖但使用标准库,依赖安全性可接受
scripts/run.py 仅使用标准库(urllib、json、argparse等),无外部依赖引入。但 resolve_user_id 调用了第三方域名 mavi-backend.memories.ai,存在域名被劫持或欺骗的风险。
scripts/run.py:19 声明能力 vs 实际能力
scripts/run.py:26 仅读取 .env 文件获取凭证 scripts/run.py:18,42 将API密钥和用户数据POST到硬编码IP 34.45.179.165,SKILL.md未声明任何网络出站行为 scripts/run.py:35 读取 MEMORIES_AI_KEY(已在SKILL.md声明) 可疑产物与外联
sk-fdd6e0eca09edd61ff577a675738e687 .env:1
34.45.179.165 scripts/run.py:18
http://34.45.179.165/luci-memory scripts/run.py:18
https://mavi-backend.memories.ai/serve/api/userinfo scripts/run.py:21
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| requests (implied via urllib) | stdlib only | Python 3 standard library | 否 | 仅使用 urllib.request,无第三方依赖 |
文件构成
.env scripts/run.py SKILL.md