awareness-memory
Awareness Cloud Memory 是一项合法的云端记忆服务,代码行为与文档声明基本一致。核心风险为 npx 自动启动无版本锁定,存在供应链隐患。
Why this conclusion was reached
0/4 dimensions flaggedDeclared resources and inferred behavior are broadly aligned.
3 lower-risk artifacts were extracted and still need context.
There is no explicit malicious chain in the report.
1 dependency or supply-chain issues need attention.
What drove the risk score up
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 标签过滤
Most important evidence
守护进程自动启动缺少版本锁定
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 Declared capability vs actual capability
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 历史记录 Suspicious artifacts and egress
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
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| @awareness-sdk/local | * (unpinned) | npx implicit | No | npx -y 安装,无版本锁定,存在供应链劫持风险 |
| better-sqlite3 | * (未声明) | daemon dependency | No | 本地守护进程依赖,SKILL.md metadata 未声明 |
File composition
scripts/recall.js scripts/shared.js scripts/setup.js scripts/import.js