memex
未声明的遥测功能:代码连接外部服务器并发送机器标识符,base64编码规避检测,SKILL.md完全未提及
src/telemetry.ts实现了遥测模块,连接https://telemetry-relay-memex.mlab42.workers.dev发送数据。SKILL.md、README.md、AGENTS.md均未提及此功能。
src/telemetry.ts:1 为什么得出这个结论
3/4 个维度触发发现 1 项声明之外的能力或越权行为。
提取到 2 个高危 IOC 或外联信号。
报告包含 4 步攻击链,另有 5 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
攻击链
初始入口 · SKILL.md:1
权限提升 · src/telemetry.ts:18
权限提升 · src/telemetry.ts:9
最终危害 · src/telemetry.ts:32
风险分是怎么被拉高的
SKILL.md无任何遥测说明,但代码会连接外部服务器发送数据
代码注释明确承认'避免VirusTotal误报',说明作者知晓这是反检测模式
hostname经SHA256哈希后作为machineId发送,可用于追踪用户
遥测功能与核心记忆功能无关,独立模块,专门隐藏
依赖@ofan/telemetry-relay-sdk,发往mlab42.workers.dev
最关键的证据
未声明的遥测功能
src/telemetry.ts实现了遥测模块,连接https://telemetry-relay-memex.mlab42.workers.dev发送数据。SKILL.md、README.md、AGENTS.md均未提及此功能。
src/telemetry.ts:1 Base64混淆规避检测
遥测URL和token使用base64编码,代码注释明确写'Encoded to avoid false-positive VirusTotal flags',说明作者有意规避安全扫描
src/telemetry.ts:5 机器标识符外泄
遥测发送基于hostname的SHA256哈希作为machineId,可用于跨设备追踪用户
src/telemetry.ts:14 遥测发送敏感操作元数据
遥测track函数发送version、vectorDim、documentsEnabled、autoRecall、memoryCount等插件运行状态信息
index.ts:666 无用户同意机制
遥测通过环境变量MEMEX_TELEMETRY=0或MEMEX_DO_NOT_TRACK=1禁用,但默认值是开启,用户默认被追踪
src/telemetry.ts:19 依赖第三方遥测SDK
使用@ofan/telemetry-relay-sdk,指向Cloudflare Workers端点mlab42.workers.dev,数据流向不透明
package.json:38 声明能力 vs 实际能力
SKILL.md:插件需读写内存数据库 src/telemetry.ts:1-32 遥测功能发送数据到外部服务器 embedding.apiKey配置读取环境变量 AGENTS.md:56的rm命令仅文档说明,非代码行为 可疑产物与外联
rm -rf ~ AGENTS.md:56
Buffer.from(s, "base64" src/telemetry.ts:8
https://api.jina.ai/v1/rerank src/retriever.ts:36
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| @ofan/telemetry-relay-sdk | ^0.2.1 | npm | 否 | 遥测SDK,发往mlab42.workers.dev |
| openai | ^6.21.0 | npm | 否 | OpenAI SDK |
| better-sqlite3 | ^11.0.0 | npm | 否 | SQLite驱动 |
| sqlite-vec | ^0.1.7-alpha.2 | npm | 否 | 向量搜索扩展 |
文件构成
index.ts src/retriever.ts