扫描报告
45 /100
layered-memory
基于 L0/L1/L2 三层结构的分层记忆管理系统,大幅减少 Token 消耗
代码引用 ~/clawd/scripts/ 下的外部脚本(memory-extractor.js, memory-archiver.js, generate-layers-simple.js, memory-reader.js)但这些脚本未打包在技能目录中;此外 SKILL.md 声明了 4 个命令但代码实际实现了 9 个(extract/archive/summary/dedupe 未声明)。
谨慎使用
1. 将依赖的脚本模块打包到技能目录内;2. 补全 SKILL.md 文档声明所有命令;3. 移除 test.js 中对 ~/clawd/scripts 的硬编码依赖检查。
攻击链 4 步
◎
入口 用户安装 layered-memory 技能,读取 SKILL.md 理解其功能
SKILL.md:1⬡
提权 技能代码 require ~/clawd/scripts/memory-extractor.js 等外部脚本
index.js:29⬡
提权 generate/read/search/stats 等方法通过 execSync 执行外部 JS 脚本
index.js:40◉
影响 攻击者可将恶意脚本放置在 ~/clawd/scripts/ 下,技能运行时以同权限执行(条件:用户 ~/clawd/scripts/ 目录可写且无验证)
index.js:40安全发现 5 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 高危 | 外部脚本缺失导致功能不可用 供应链 | index.js:29-58 |
| 高危 | SKILL.md 声明命令与实际不符 文档欺骗 | index.js:145-218 |
| 中危 | test.js 对外部路径存在性检查 供应链 | test.js:75-86 |
| 低危 | benchmark.js 包含硬编码用户路径 文档欺骗 | benchmark.js:56-57 |
| 低危 | OpenClaw hook 未在 SKILL.md 中声明 文档欺骗 | package.json:19-26 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | READ | WRITE | ✗ 越权 | index.js:29-31 代码执行 fs.readFileSync/writeFileSync |
| 命令执行 | NONE | WRITE | ✗ 越权 | index.js:40-58 使用 execSync 调用外部脚本 |
| 技能调用 | NONE | WRITE | ✓ 一致 | index.js:29-31 require(~/clawd/scripts/memory-extractor.js) 等外部模块 |
目录结构
18 文件 · 64.8 KB · 2694 行 Markdown 11f · 1766L
JavaScript 5f · 878L
JSON 2f · 50L
├─
▾
hooks
│ └─
▾
openclaw
│ ├─
handler.js
JavaScript
│ └─
HOOK.md
Markdown
├─
▾
lib
│ └─
config-loader.js
JavaScript
├─
ANTI-DUPLICATE.md
Markdown
├─
AUTO-SAVE-GUIDE.md
Markdown
├─
AUTO-TRIGGER.md
Markdown
├─
benchmark.js
JavaScript
├─
CHANGELOG.md
Markdown
├─
config.example.json
JSON
├─
CONTRIBUTING.md
Markdown
├─
index.js
JavaScript
├─
INTEGRATION.md
Markdown
├─
package.json
JSON
├─
PRACTICAL-SOLUTION.md
Markdown
├─
README.md
Markdown
├─
SKILL.md
Markdown
├─
test.js
JavaScript
└─
UPGRADE_PLAN.md
Markdown
依赖分析 4 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
memory-extractor.js | N/A | ~/.clawd/scripts/ (external, not bundled) | 否 | 高风险:外部脚本未打包,依赖用户环境存在 |
memory-archiver.js | N/A | ~/.clawd/scripts/ (external, not bundled) | 否 | 高风险:外部脚本未打包,依赖用户环境存在 |
generate-layers-simple.js | N/A | ~/.clawd/scripts/ (external, not bundled) | 否 | 高风险:外部脚本未打包,依赖用户环境存在 |
memory-reader.js | N/A | ~/.clawd/scripts/ (external, not bundled) | 否 | 高风险:外部脚本未打包,依赖用户环境存在 |
安全亮点
✓ 无恶意代码:无 base64 编码、eval、混淆或反向 shell
✓ 无凭证收割:未遍历环境变量匹配敏感关键字
✓ 无数据外泄:无 POST 请求或 C2 通信
✓ 无硬编码凭证或密钥
✓ MIT 许可证声明清晰
✓ benchmark.js 使用字符数估算 token(无外部 API 调用)
✓ OpenClaw hook 行为仅为注入文本提醒,无危害操作