birth-system-manager
技能存在文档欺骗行为:SKILL.md 承诺绝不显示私钥,但 decrypt-wallet.js 实际将私钥明文输出到 stdout;同时 pack.js 在生成的迁移文档中泄露密码和系统指纹。
Why this conclusion was reached
1/4 dimensions flaggedDeclared resources and inferred behavior are broadly aligned.
4 lower-risk artifacts were extracted and still need context.
The report includes 3 attack-chain steps and 2 severe findings.
2 dependency or supply-chain issues need attention.
Attack Chain
Entry · SKILL.md:1
Escalation · decrypt-wallet.js:85
Impact · decrypt-wallet.js:85
What drove the risk score up
SKILL.md 第 55 行承诺'NEVER show full private key',但 decrypt-wallet.js 第 85-87 行直接打印私钥到 stdout
pack.js 第 18 行默认密码 + 第 82-91 行在 MIGRATION.md 中写入密码和 hostname/platform/arch/node_version
generate-birth-id.js 第 52 行将 private_key 明文存入 birth-info.json
Most important evidence
文档承诺不显示私钥,实际直接明文输出
SKILL.md 第 55 行明确声明'Return ONLY wallet address and success message, NEVER show full private key',但 decrypt-wallet.js 第 85-87 行当 DECRYPT_OUTPUT_TO_FILE 不为 true 时直接将私钥打印到控制台 stdout。这是明确的文档-行为差异(doc-behavior mismatch)。
decrypt-wallet.js:85 迁移包泄露密码和系统指纹
pack.js 在生成 MIGRATION.md 时将密码明文写入(第 82-91 行),并在 marker.metadata 中包含 hostname、platform、arch、node_version 等敏感系统信息。这些信息会被打包进 .tar.gz 并可能传输到其他机器。
pack.js:82 私钥明文存储在 birth-info.json
generate-birth-id.js 第 52 行将 private_key 明文存入 birthData 对象并保存到 ~/.openclaw/birth-info.json。虽然有注释说'in production, this should be encrypted',但代码没有实现加密。
generate-birth-id.js:52 unpack.js 使用 execSync 执行 shell 命令
unpack.js 第 19 行使用 execSync 执行 tar 命令提取压缩包,虽然是本地 tar 操作,但如果用户传入的 packagePath 被恶意控制,可能导致路径遍历攻击。
unpack.js:19 创建可执行环境脚本
unpack.js 第 55-68 行在目标目录创建 .openclaw-setup.sh 并设置 0o755 权限,包含固定内容 'export IS_CLONE=true'。这可能在某些场景下被利用。
unpack.js:55 pack.js 依赖 archiver 库但无版本锁定声明
pack.js 第 5 行使用 archiver 库进行打包,但项目没有 package.json 文件声明依赖版本。
pack.js:5 Declared capability vs actual capability
多个脚本读写 ~/.openclaw/birth-info.json unpack.js:19 使用 execSync 执行 tar 命令 读取 IS_CLONE、BIRTH_PRIVATE_KEY_PASSWORD 等环境变量 Suspicious artifacts and egress
0xF80042413226cf4a5F1b7de458Cf0EEd19237662 README.md:86
https://docs.openclaw.ai pack.js:272
https://clawhub.ai/user/vg555558 skill-card.md:7
https://clawhub.ai/vg555558/birth-system-manager skill-card.md:27
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| ethers | * | bundled_with_openclaw | No | 依赖 OpenClaw 捆绑版本,无独立 package.json |
| archiver | * | require | No | 无版本锁定,通过 require 直接引用 |
File composition
pack.js README.md generate-birth-id.js unpack.js decrypt-wallet.js skill-card.md