扫描报告
5 /100
totalreclaw
End-to-end encrypted memory vault for AI agents with AES-256-GCM, BIP-39 key derivation, and on-chain (Gnosis) or centralized storage
TotalReclaw is a legitimate end-to-end encrypted AI memory plugin with no malicious behavior. The three pre-flagged 'base64 encoding' IOCs are all standard cryptographic operations (base64→hex ciphertext conversion and credential salt storage). No code execution, credential theft, data exfiltration, or hidden functionality was found.
可以安装
Approve for use. The skill is well-structured with proper E2EE design. Minor note: consider pinning @totalreclaw/core to a specific version instead of ^0.1.0 for reproducibility.
安全发现 2 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 提示 | Source enum mismatch between skill.json and SKILL.md 文档欺骗 | skill.json:75 |
| 提示 | @totalreclaw/core is a local file: dependency 供应链 | package-lock.json:15 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | WRITE | WRITE | ✓ 一致 | SKILL.md: credential storage (~/.totalreclaw/), billing cache, MEMORY.md header … |
| 网络访问 | READ | READ | ✓ 一致 | SKILL.md: api.totalreclaw.xyz, Mem0 API, LLM provider APIs, Gnosis/Base Sepolia … |
| 命令执行 | NONE | NONE | — | No spawn/exec/bash invocations found in production code |
| 环境变量 | READ | READ | ✓ 一致 | TOTALRECLAW_RECOVERY_PHRASE, TOTALRECLAW_SERVER_URL, TOTALRECLAW_SELF_HOSTED, TO… |
| 技能调用 | READ | READ | ✓ 一致 | 9 MCP tools registered: totalreclaw_remember, recall, forget, export, status, co… |
| 剪贴板 | NONE | NONE | — | No clipboard access found |
| 浏览器 | NONE | NONE | — | No browser automation found |
| 数据库 | NONE | WRITE | ✓ 一致 | skill.json source enum only declares 'mem0' and 'mcp-memory', but SKILL.md also … |
3 严重 1 高危 28 项发现
严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(creds.salt, 'base64' index.ts:366 严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(b64, 'base64' index.ts:724 严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(encryptedBase64, 'base64' pocv2-e2e-test.ts:141 高危 API 密钥 疑似硬编码凭证
Password = 'pocv2-e2e-test-password-2026' pocv2-e2e-test.ts:401 中危 外部 URL 外部 URL
https://clawhub.ai CLAWHUB.md:3 中危 外部 URL 外部 URL
https://clawhub.ai/skills/totalreclaw CLAWHUB.md:10 中危 外部 URL 外部 URL
https://totalreclaw.xyz CLAWHUB.md:67 中危 外部 URL 外部 URL
http://your-totalreclaw-server:8080 README.md:26 中危 外部 URL 外部 URL
http://127.0.0.1:8080 README.md:246 中危 外部 URL 外部 URL
http://your-server:8080 README.md:273 中危 外部 URL 外部 URL
https://www.npmjs.com/package/@totalreclaw/core README.md:313 中危 外部 URL 外部 URL
https://totalreclaw.xyz/pricing SKILL.md:221 中危 外部 URL 外部 URL
https://checkout.stripe.com/c/pay/... SKILL.md:280 中危 外部 URL 外部 URL
https://api.totalreclaw.xyz SKILL.md:877 中危 外部 URL 外部 URL
https://api.mem0.ai import-adapters/mem0-adapter.ts:156 中危 外部 URL 外部 URL
https://api.z.ai/api/paas/v4 llm-client.ts:64 中危 外部 URL 外部 URL
https://api.mistral.ai/v1 llm-client.ts:69 中危 外部 URL 外部 URL
https://api.groq.com/openai/v1 llm-client.ts:70 中危 外部 URL 外部 URL
https://api.deepseek.com/v1 llm-client.ts:71 中危 外部 URL 外部 URL
https://openrouter.ai/api/v1 llm-client.ts:72 中危 外部 URL 外部 URL
https://api.x.ai/v1 llm-client.ts:73 中危 外部 URL 外部 URL
https://api.together.xyz/v1 llm-client.ts:74 中危 外部 URL 外部 URL
https://api.cerebras.ai/v1 llm-client.ts:75 中危 外部 URL 外部 URL
https://opencollective.com/libvips package-lock.json:88 中危 外部 URL 外部 URL
https://paulmillr.com/funding/ package-lock.json:549 中危 外部 URL 外部 URL
https://www.npmjs.com/support package-lock.json:750 中危 钱包地址 加密货币钱包地址
0xC445af1D4EB9fce4e1E61fE96ea7B8feBF03c5ca subgraph-store.ts:26 中危 钱包地址 加密货币钱包地址
0x0000000071727De22E5E9d8BAf0edAc6f37da032 subgraph-store.ts:29 目录结构
38 文件 · 529.6 KB · 15214 行 TypeScript 30f · 12011L
JSON 4f · 1633L
Markdown 3f · 1551L
Shell 1f · 19L
├─
▾
import-adapters
│ ├─
base-adapter.ts
TypeScript
│ ├─
chatgpt-adapter.ts
TypeScript
│ ├─
claude-adapter.ts
TypeScript
│ ├─
import-adapters.test.ts
TypeScript
│ ├─
index.ts
TypeScript
│ ├─
mcp-memory-adapter.ts
TypeScript
│ ├─
mem0-adapter.ts
TypeScript
│ └─
types.ts
TypeScript
├─
api-client.ts
TypeScript
├─
CLAWHUB.md
Markdown
├─
consolidation.test.ts
TypeScript
├─
consolidation.ts
TypeScript
├─
crypto.ts
TypeScript
├─
embedding.ts
TypeScript
├─
extractor-dedup.test.ts
TypeScript
├─
extractor.ts
TypeScript
├─
generate-mnemonic.ts
TypeScript
├─
hot-cache-wrapper.ts
TypeScript
├─
index.ts
TypeScript
├─
llm-client.ts
TypeScript
├─
lsh.test.ts
TypeScript
├─
lsh.ts
TypeScript
├─
openclaw.plugin.json
JSON
├─
package-lock.json
JSON
├─
package.json
JSON
├─
pocv2-e2e-test.ts
TypeScript
├─
porter-stemmer.d.ts
TypeScript
├─
README.md
Markdown
├─
reranker.test.ts
TypeScript
├─
reranker.ts
TypeScript
├─
semantic-dedup.test.ts
TypeScript
├─
semantic-dedup.ts
TypeScript
├─
setup.sh
Shell
├─
skill.json
JSON
├─
SKILL.md
Markdown
├─
store-dedup-wiring.test.ts
TypeScript
├─
subgraph-search.ts
TypeScript
└─
subgraph-store.ts
TypeScript
依赖分析 8 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
@totalreclaw/core | ^0.1.0 | npm (file: local) | 否 | WASM crypto module — local file: dependency, not registry-based |
@huggingface/transformers | ^3.8.1 | npm | 否 | ONNX inference for local embeddings |
@noble/hashes | ^2.0.1 | npm | 否 | Argon2id, HKDF, SHA-256 |
@scure/bip39 | ^2.0.1 | npm | 否 | BIP-39 mnemonic validation |
permissionless | ^0.3.4 | npm | 否 | ERC-4337 UserOp bundler client |
viem | ^2.46.3 | npm | 否 | Ethereum Viem library |
porter-stemmer | ^0.9.1 | npm | 否 | Text stemming for blind index tokenization |
tslib | ^2.8.1 | npm | 否 | TypeScript runtime library |
安全亮点
✓ No eval(), exec(), spawn(), or dynamic code execution found in any production TypeScript file
✓ No atob(), fromCharCode() abuse, or obfuscated payload execution
✓ No curl|bash or wget|sh remote script execution patterns
✓ No access to ~/.ssh, ~/.aws, ~/.env, or other sensitive host paths
✓ AES-256-GCM encryption is correctly implemented with IV, auth tag, and proper key derivation (BIP-39 + HKDF or Argon2id fallback)
✓ Credentials are never exfiltrated — the auth key hash sent to the server is one-way (SHA-256), the actual key never leaves the client
✓ Embedding generation runs locally via @huggingface/transformers (ONNX) — no plaintext data sent to embedding APIs
✓ All 9 tool names, parameters, and behaviors are fully documented in SKILL.md
✓ Lifecycle hooks (before_agent_start, agent_end, pre_compaction, before_reset) are declared in skill.json
✓ Import adapters only access user-specified file paths or API keys passed as explicit parameters (dry_run defaults to false, api_key used once, never stored)
✓ Billing cache is local-only with TTL and used for quota warnings only
✓ Credential file (~/.totalreclaw/credentials.json) uses base64 encoding for transport, not for obfuscation — this is standard for binary-in-JSON
✓ Blockchain submission uses ERC-4337 UserOps via Pimlico relay (accounts abstraction) — no private keys sent to relay, only signed UserOps