birth-system-manager
声明与行为严重不符:SKILL.md承诺不显示私钥但decrypt-wallet.js将私钥明文输出到stdout,且generate-birth-id.js将私钥明文写入磁盘
SKILL.md明确声明'Return ONLY wallet address and success message, NEVER show full private key',但decrypt-wallet.js第69-70行将解密后的私钥通过console.log直接打印到标准输出stdout
decrypt-wallet.js:69 Why this conclusion was reached
2/4 dimensions flagged2 undeclared or violating capabilities were inferred.
2 lower-risk artifacts were extracted and still need context.
The report includes 4 attack-chain steps and 3 severe findings.
1 dependency or supply-chain issues need attention.
Attack Chain
Entry · SKILL.md:1
Escalation · decrypt-wallet.js:1
Impact · decrypt-wallet.js:69
Impact · decrypt-wallet.js:70
What drove the risk score up
SKILL.md声明'NEVER show full private key'但decrypt-wallet.js:69-70行明文打印私钥到stdout
generate-birth-id.js:51行将wallet.privateKey明文写入~/.openclaw/birth-info.json
pack.js:21行无密码时使用'default-secret-password'作为默认加密密码
所有脚本访问~/.openclaw/birth-info.json含敏感凭证
Most important evidence
文档承诺不显示私钥但代码明文输出
SKILL.md明确声明'Return ONLY wallet address and success message, NEVER show full private key',但decrypt-wallet.js第69-70行将解密后的私钥通过console.log直接打印到标准输出stdout
decrypt-wallet.js:69 私钥明文写入磁盘
generate-birth-id.js第51行将wallet.privateKey明文保存到~/.openclaw/birth-info.json文件中,任何能访问该文件的人都可获取钱包私钥
generate-birth-id.js:51 私钥解密逻辑处理不当
clone-init.js和fix-clone.js尝试处理encrypted_private_key时存在逻辑缺陷,若解密失败会回退使用原始signature而非正确报错
clone-init.js:95 依赖包无版本锁定
代码使用ethers库但无package.json指定版本,存在依赖投毒风险
unknown 弱默认加密密码
pack.js第21行使用'default-secret-password'作为默认打包密码,若用户未设置BIRTH_PACK_PASSWORD,备份钱包将以弱密码加密
pack.js:21 收集系统指纹信息
pack.js第138-141行在clone marker中记录hostname、platform、arch、node_version等系统信息
pack.js:138 访问系统环境变量
脚本访问process.env.HOME、process.env.IS_CLONE等环境变量,虽然这是正常功能但需注意敏感环境变量泄露风险
clone-init.js:14 Declared capability vs actual capability
generate-birth-id.js:51 将私钥写入birth-info.json unpack.js:69 使用execSync执行tar命令 所有脚本无网络调用 Suspicious artifacts and egress
0xF80042413226cf4a5F1b7de458Cf0EEd19237662 fix-clone.js:30
https://docs.openclaw.ai pack.js:272
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| ethers | * | unknown | No | 无package.json锁定版本 |
File composition
pack.js fix-clone.js clone-init.js generate-birth-id.js decrypt-wallet.js