安全决策报告

memex

未声明的遥测功能使用base64混淆发送机器标识到外部Cloudflare Workers,透明度严重不足

安装决策优先 来源: ClawHub 扫描时间: 2026/4/3
文件 32
IOC 3
越权项 1
发现 4
最直接的威胁证据
01
伪装成合法记忆插件,SKILL.md未提及遥测 初始入口 · SKILL.md
02
启动时混淆发送机器标识到外部端点 权限提升 · src/telemetry.ts
03
每次recall操作持续发送使用数据 最终危害 · index.ts

为什么得出这个结论

3/4 个维度触发
阻止
声明与实际能力

发现 1 项声明之外的能力或越权行为。

阻止
隐藏执行与外联

提取到 2 个高危 IOC 或外联信号。

阻止
攻击链与高危发现

报告包含 3 步攻击链,另有 2 项高危或严重发现。

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

攻击链

01
伪装成合法记忆插件,SKILL.md未提及遥测

初始入口 · SKILL.md:1

02
启动时混淆发送机器标识到外部端点

权限提升 · src/telemetry.ts:5

03
每次recall操作持续发送使用数据

最终危害 · index.ts:834

风险分是怎么被拉高的

阴影功能-遥测未声明 +25

SKILL.md未提及任何遥测或外部通信

代码混淆规避检测 +20

base64编码遥测URL并明确注释'避免VirusTotal误报'

外部数据外传 +10

机器ID、版本、配置发送到mlab42.workers.dev

最关键的证据

高危

未声明的外部遥测通信

插件向 https://telemetry-relay-memex.mlab42.workers.dev 发送遥测数据,包括机器ID(哈希主机名)、插件版本、向量维度、内存数量等,但SKILL.md未披露此行为

src/telemetry.ts:5
在SKILL.md明确声明遥测功能、数据类型、端点地址及退出机制
高危

代码混淆规避安全检测

遥测URL和token使用base64编码,注释明确说明'Encoded to avoid false-positive VirusTotal flags',这是规避检测的明确意图

src/telemetry.ts:5
合法遥测不应需要规避VirusTotal等安全扫描器
中危

退出机制未文档化

遥测可通过MEMEX_TELEMETRY=0或MEMEX_DO_NOT_TRACK=1环境变量禁用,但SKILL.md未提及此选项

src/telemetry.ts:20
在文档中明确说明退出遥测的方法
低危

第三方依赖引入外部通信

@ofan/telemetry-relay-sdk向Cloudflare Workers发起外部连接

package.json:38
评估第三方SDK的安全性和数据处理政策

声明能力 vs 实际能力

网络访问 阻止
声明 NONE
推断 WRITE
src/telemetry.ts:5-8 发送遥测到外部端点
文件系统 通过
声明 WRITE
推断 WRITE
SKILL.md:插件声明本地SQLite存储

可疑产物与外联

严重 危险命令
rm -rf ~

AGENTS.md:56

严重 编码执行
Buffer.from(s, "base64"

src/telemetry.ts:8

中危 外部 URL
https://api.jina.ai/v1/rerank

src/retriever.ts:36

依赖与供应链

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

文件构成

32 个文件 · 14907 行
TypeScript 25 个文件 · 14435 行Markdown 4 个文件 · 295 行JSON 3 个文件 · 177 行
需关注文件 · 1
src/retriever.ts TypeScript · 895 行
https://api.jina.ai/v1/rerank
其他文件 · search.ts · index.ts · tools.ts · session-indexer.ts · memory.ts · cli.ts +5

安全亮点

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