可疑 — 风险评分 55/100
上次扫描:2 天前 重新扫描
55 /100
memex
统一记忆插件-对话记忆+文档搜索
未声明的遥测功能使用base64混淆发送机器标识到外部Cloudflare Workers,透明度严重不足
技能名称memex
分析耗时79.4s
引擎pi
谨慎使用
必须明确告知用户遥测存在,或提供纯本地运行选项

攻击链 3 步

入口 伪装成合法记忆插件,SKILL.md未提及遥测
SKILL.md:1
提权 启动时混淆发送机器标识到外部端点
src/telemetry.ts:5
影响 每次recall操作持续发送使用数据
index.ts:834

安全发现 4 项

严重性 安全发现 位置
高危
未声明的外部遥测通信
插件向 https://telemetry-relay-memex.mlab42.workers.dev 发送遥测数据,包括机器ID(哈希主机名)、插件版本、向量维度、内存数量等,但SKILL.md未披露此行为
const _u = "aHR0cHM6Ly90ZWxlbWV0cnktcmVsYXktbWV0ZXgubWxhYjQyLndvcmtlcnMuZGV2"
→ 在SKILL.md明确声明遥测功能、数据类型、端点地址及退出机制
src/telemetry.ts:5
高危
代码混淆规避安全检测
遥测URL和token使用base64编码,注释明确说明'Encoded to avoid false-positive VirusTotal flags',这是规避检测的明确意图
// Encoded to avoid false-positive VirusTotal flags on token patterns
→ 合法遥测不应需要规避VirusTotal等安全扫描器
src/telemetry.ts:5
中危
退出机制未文档化
遥测可通过MEMEX_TELEMETRY=0或MEMEX_DO_NOT_TRACK=1环境变量禁用,但SKILL.md未提及此选项
if (process.env.MEMEX_TELEMETRY === "0" || process.env.MEMEX_DO_NOT_TRACK === "1") return noop
→ 在文档中明确说明退出遥测的方法
src/telemetry.ts:20
低危
第三方依赖引入外部通信
@ofan/telemetry-relay-sdk向Cloudflare Workers发起外部连接
"@ofan/telemetry-relay-sdk": "^0.2.1"
→ 评估第三方SDK的安全性和数据处理政策
package.json:38
资源类型声明权限推断权限状态证据
网络访问 NONE WRITE ✗ 越权 src/telemetry.ts:5-8 发送遥测到外部端点
文件系统 WRITE WRITE ✓ 一致 SKILL.md:插件声明本地SQLite存储
2 严重 3 项发现
💀
严重 危险命令 危险 Shell 命令
rm -rf ~
AGENTS.md:56
🔒
严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(s, "base64"
src/telemetry.ts:8
🔗
中危 外部 URL 外部 URL
https://api.jina.ai/v1/rerank
src/retriever.ts:36

目录结构

32 文件 · 510.7 KB · 14907 行
TypeScript 25f · 14435L Markdown 4f · 295L JSON 3f · 177L
├─ 📁 src
│ ├─ 📜 adaptive-retrieval.ts TypeScript 99L · 3.9 KB
│ ├─ 📜 capture-windows.ts TypeScript 70L · 2.2 KB
│ ├─ 📜 chunker.ts TypeScript 243L · 7.2 KB
│ ├─ 📜 cli.ts TypeScript 719L · 29.1 KB
│ ├─ 📜 collections.ts TypeScript 403L · 9.9 KB
│ ├─ 📜 db.ts TypeScript 62L · 1.6 KB
│ ├─ 📜 doc-indexer.ts TypeScript 278L · 8.0 KB
│ ├─ 📜 embedder.ts TypeScript 567L · 19.2 KB
│ ├─ 📜 formatter.ts TypeScript 429L · 12.9 KB
│ ├─ 📜 importance.ts TypeScript 108L · 3.6 KB
│ ├─ 📜 llm.ts TypeScript 675L · 19.4 KB
│ ├─ 📜 memory-instructions.ts TypeScript 18L · 917 B
│ ├─ 📜 memory.ts TypeScript 1021L · 32.9 KB
│ ├─ 📜 migrate-lancedb.ts TypeScript 145L · 4.4 KB
│ ├─ 📜 migrate.ts TypeScript 355L · 10.0 KB
│ ├─ 📜 noise-filter.ts TypeScript 343L · 12.0 KB
│ ├─ 📜 retriever.ts TypeScript 895L · 32.4 KB
│ ├─ 📜 scopes.ts TypeScript 382L · 10.4 KB
│ ├─ 📜 search.ts TypeScript 3609L · 123.9 KB
│ ├─ 📜 session-indexer.ts TypeScript 955L · 33.1 KB
│ ├─ 📜 telemetry.ts TypeScript 34L · 1.1 KB
│ ├─ 📜 tools.ts TypeScript 834L · 34.1 KB
│ ├─ 📜 unified-recall.ts TypeScript 418L · 13.6 KB
│ └─ 📜 unified-retriever.ts TypeScript 543L · 18.5 KB
├─ 📋 _meta.json JSON 5L · 125 B
├─ 📝 AGENTS.md Markdown 68L · 2.7 KB
├─ 📝 CLAUDE.md Markdown 1L · 10 B
├─ 📜 index.ts TypeScript 1230L · 49.8 KB
├─ 📋 openclaw.plugin.json JSON 110L · 5.2 KB
├─ 📋 package.json JSON 62L · 1.3 KB
├─ 📝 README.md Markdown 110L · 3.4 KB
└─ 📝 SKILL.md Markdown 116L · 3.7 KB

依赖分析 1 项

包名版本来源已知漏洞备注
@ofan/telemetry-relay-sdk ^0.2.1 npm 向Cloudflare Workers发送遥测

安全亮点

✓ 遥测可通过环境变量禁用(MEMEX_TELEMETRY=0)
✓ 机器ID使用哈希处理而非明文主机名
✓ 无凭证收割或远程代码执行
✓ 数据库仅存储在本地配置的路径
✓ 核心功能(记忆管理、文档搜索)实现清晰