awareness-memory
Awareness Cloud Memory 是一项合法的云端记忆服务,代码行为与文档声明基本一致。核心风险为 npx 自动启动无版本锁定,存在供应链隐患。
为什么得出这个结论
0/4 个维度触发声明资源与推断能力基本一致。
提取到 3 个一般风险产物,需要结合上下文判断。
没有形成明确的恶意路径。
发现 1 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
shared.js 和 mcp-stdio.cjs 中 daemon auto-start 使用 'npx -y @awareness-sdk/local start' 无版本固定,存在供应链攻击风险
recall.js 在 UserPromptSubmit hook 中将完整用户 prompt 发送到 awareness.market 进行语义搜索,属于已声明行为但涉及敏感数据
import.js 读取 ~/.openclaw/agents/main/sessions/ 下的 JSONL 会话文件并上传,可能包含敏感内容但已通过 awareness-memory XML 标签过滤
最关键的证据
守护进程自动启动缺少版本锁定
shared.js:165 和 mcp-stdio.cjs:92 中使用 'npx -y @awareness-sdk/local start' 无版本锁定,攻击者可劫持包名或依赖注入恶意代码。
scripts/shared.js:165 用户 prompt 数据发送至外部云服务
recall.js 作为 UserPromptSubmit hook,在每次用户提交 prompt 前将其发送至 awareness.market 进行语义搜索。prompt 可能包含敏感信息(代码、凭证上下文等),数据离开本地环境。SKILL.md 有声明但警告不够突出。
scripts/recall.js:97 导入功能读取 OpenClaw 会话历史
import.js 读取 ~/.openclaw/agents/main/sessions/ 下的 JSONL 会话文件并上传至云端记忆服务,可能包含对话中的敏感内容。代码有 awareness-memory XML 标签过滤,但 JSONL 解析器不保证完全清除。
scripts/import.js:76 capture.js 钩子已禁用但仍在 SKILL.md 声明
SKILL.md 中声明了 Stop hook: 'node ${CLAUDE_SKILL_DIR}/scripts/capture.js',但 capture.js 源码明确注释说明其已被禁用(no-op,直接 exit(0)),不会产生任何副作用。属于过时文档,误导用户以为有会话检查点功能。
scripts/capture.js:1 pip/npm 依赖无版本锁定
此技能本身无 package.json/requirements.txt(纯脚本包),但通过 npx 隐式依赖 @awareness-sdk/local 包,缺少版本控制。
scripts/shared.js:165 声明能力 vs 实际能力
scripts/setup.js:63 - 写入 ~/.awareness/credentials.json; scripts/poll-auth.js:97 - 写入 ~/.openclaw/openclaw.json scripts/recall.js:52 - POST awareness.market/cli-auth; scripts/recall.js:110 - POST /memories/{id}/retrieve scripts/shared.js:165 - spawn('npx', ['-y', '@awareness-sdk/local', 'start']); scripts/recall.js:79 - spawn poll-auth.js detached scripts/shared.js:33 - 仅读取 AWARENESS_* 前缀变量,文档声明'不捕获密钥',代码未遍历 os.environ 匹配敏感关键字 无剪贴板访问代码 scripts/headless-auth.js:63 - openBrowserSilently() 调用 open/xdg-open/start 启动浏览器 无直接数据库访问,通过本地守护进程 MCP 协议间接操作 scripts/recall.js:155 - spawn import.js 导入 OpenClaw 历史记录 可疑产物与外联
https://awareness.market/cli-auth scripts/recall.js:52
https://awareness.market/api/v1 scripts/recall.js:110
https://awareness.market\n scripts/setup.js:223
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| @awareness-sdk/local | * (unpinned) | npx implicit | 否 | npx -y 安装,无版本锁定,存在供应链劫持风险 |
| better-sqlite3 | * (未声明) | daemon dependency | 否 | 本地守护进程依赖,SKILL.md metadata 未声明 |
文件构成
scripts/recall.js scripts/shared.js scripts/setup.js scripts/import.js