Skill Trust Decision

luci-memory

通过硬编码IP地址 34.45.179.165 窃取用户 API 密钥并外传个人媒体数据,具备凭证收割和数据外泄双重攻击链。

Install decision first Source: Manual upload Scanned: Apr 5, 2026
Files 5
Artifacts 4
Violations 1
Findings 6
Most direct threat evidence
Critical Credential Theft
API密钥在初始化时即被外传至硬编码外部IP

resolve_user_id() 在模块加载时(顶层全局代码)立即执行,通过 urllib POST API密钥到 http://34.45.179.165/luci-memory/personal/...,每次运行 skill 时均会触发凭证外传。SKILL.md 完全未声明任何网络出站行为。

scripts/run.py:42

Why this conclusion was reached

3/4 dimensions flagged
Block
Declared vs actual capability

1 undeclared or violating capabilities were inferred.

Block
Hidden execution and egress

2 high-risk artifacts or egress signals were extracted.

Block
Attack chain and severe findings

The report includes 3 attack-chain steps and 5 severe findings.

Pass
Dependencies and supply chain hygiene

Dependencies are present but no obvious high-risk issue stands out.

Attack Chain

01
用户安装 luci-memory skill,误以为这是 memories.ai 官方工具

Entry · SKILL.md:1

02
Python模块加载时自动执行 resolve_user_id(),将API密钥POST到 http://34.45.179.165 完成凭证收割

Escalation · scripts/run.py:42

03
所有用户搜索请求(视频/图像/音频/肖像数据)持续POST到 34.45.179.165,完成数据外泄

Impact · scripts/run.py:18

What drove the risk score up

硬编码外部IP进行所有敏感API调用 +35

API_HOST 硬编码为 http://34.45.179.165/luci-memory,而非官方域名,所有个人媒体和肖像数据均发送到该IP

API密钥在初始化阶段即被发送至外部IP +30

resolve_user_id() 在模块加载时执行,将 MEMORIES_AI_KEY POST到 34.45.179.165,完成凭证收割

敏感数据POST到非HTTPS的硬编码IP +20

使用 http:// 而非 https://,个人视频/肖像数据以明文传输,且无法验证服务器身份

Most important evidence

Critical Credential Theft

API密钥在初始化时即被外传至硬编码外部IP

resolve_user_id() 在模块加载时(顶层全局代码)立即执行,通过 urllib POST API密钥到 http://34.45.179.165/luci-memory/personal/...,每次运行 skill 时均会触发凭证外传。SKILL.md 完全未声明任何网络出站行为。

scripts/run.py:42
此函数不应在模块加载时执行;凭证应仅发往可验证的官方域名;添加证书验证防止中间人攻击
Critical Data Exfil

所有用户个人媒体和肖像数据POST到硬编码外部IP

API_HOST 硬编码为 http://34.45.179.165,USER_ID 解析后,所有 API 调用(视频、图像、音频、肖像数据查询)均发往该IP。数据外泄在用户每次搜索时发生。

scripts/run.py:18
立即停止使用该技能;官方API应使用HTTPS+官方域名;检查是否存在日志或备份中的数据泄露
Critical Obfuscation

使用裸IP绕过域名安全检测

硬编码IP 34.45.179.165 而非域名,无法通过DNS安全监控、域名黑名单或证书验证检测通信意图,且使用 http:// 明文传输,大幅降低攻击暴露风险。

scripts/run.py:18
禁止在代码中使用硬编码IP;所有外部通信必须使用HTTPS+域名
High Doc Mismatch

SKILL.md 声称'直接使用Luci-memory API',实际发往第三方IP

SKILL.md声明使用'memories.ai'相关API,但代码实际连接到 34.45.179.165 (非官方域名)。文档与实际行为严重不符,是典型的阴影功能。

SKILL.md:1
文档应明确声明所有网络端点,包括IP地址或域名
High Credential Theft

.env 文件包含真实API密钥

.env 中包含真实可用的 MEMORIES_AI_KEY=sk-fdd6e0eca09edd61ff577a675738e687(预扫描IOC已标记)。该密钥已泄露,应立即撤销。

.env:1
立即在 memories.ai 后台撤销该密钥;勿将真实凭证提交到代码仓库
Medium Supply Chain

无第三方依赖但使用标准库,依赖安全性可接受

scripts/run.py 仅使用标准库(urllib、json、argparse等),无外部依赖引入。但 resolve_user_id 调用了第三方域名 mavi-backend.memories.ai,存在域名被劫持或欺骗的风险。

scripts/run.py:19
验证 mavi-backend.memories.ai 与 34.45.179.165 是否为同一服务提供方

Declared capability vs actual capability

Filesystem Pass
Declared NONE
Inferred READ
scripts/run.py:26 仅读取 .env 文件获取凭证
Network Block
Declared NONE
Inferred WRITE
scripts/run.py:18,42 将API密钥和用户数据POST到硬编码IP 34.45.179.165,SKILL.md未声明任何网络出站行为
Environment Pass
Declared READ
Inferred READ
scripts/run.py:35 读取 MEMORIES_AI_KEY(已在SKILL.md声明)

Suspicious artifacts and egress

Critical API Key
sk-fdd6e0eca09edd61ff577a675738e687

.env:1

High IP Address
34.45.179.165

scripts/run.py:18

Medium External URL
http://34.45.179.165/luci-memory

scripts/run.py:18

Medium External URL
https://mavi-backend.memories.ai/serve/api/userinfo

scripts/run.py:21

Dependencies and supply chain

PackageVersionSourceKnown vulnNotes
requests (implied via urllib) stdlib only Python 3 standard library No 仅使用 urllib.request,无第三方依赖

File composition

5 files · 605 lines
Python 1 files · 432 linesMarkdown 1 files · 165 linesYAML 1 files · 4 linesShell 1 files · 3 linesOther 1 files · 1 lines
Files of concern · 3
.env Other · 1 lines
.env 文件包含真实API密钥 · sk-fdd6e0eca09edd61ff577a675738e687
scripts/run.py Python · 432 lines
API密钥在初始化时即被外传至硬编码外部IP · 所有用户个人媒体和肖像数据POST到硬编码外部IP · 使用裸IP绕过域名安全检测 · 无第三方依赖但使用标准库,依赖安全性可接受 · 34.45.179.165 · http://34.45.179.165/luci-memory · https://mavi-backend.memories.ai/serve/api/userinfo
SKILL.md Markdown · 165 lines
SKILL.md 声称'直接使用Luci-memory API',实际发往第三方IP
Other files · config.yaml · run.sh

Security positives

代码结构清晰,无复杂混淆逻辑,便于静态分析识别硬编码IP
无 eval()、subprocess 等动态代码执行
无访问 ~/.ssh、~/.aws、.env 以外的敏感路径