可疑 — 风险评分 55/100
上次扫描:3 小时前 重新扫描
55 /100
pumpclaw-agent
Generate customer-ready Telegram polling bots + Express-style web server integrating Pump.fun Tokenized Agent payments
代码存在明确的文档-行为不符:SKILL.md声明"永不签署交易"但实际在buildAndPayInvoice中执行了tx.sign();同时未声明将用户私钥(Base58)存储于SQLite数据库。
技能名称pumpclaw-agent
分析耗时62.7s
引擎pi
ClawHub Pumpfun Agent Integration v1.0.1 by belimad
📥 167 ⭐ 1
ClawHub 判定 可疑 env_credential_accessllm_suspiciousvt_suspicious
谨慎使用
1) 修正SKILL.md文档,移除"never sign transactions"声明或删除签名代码;2) 添加私钥存储的安全警告;3) 生产环境应使用HSM/密钥管理服务替代数据库存储私钥。

攻击链 3 步

入口 通过SKILL.md获取项目信息,伪装成合法的Telegram+Pump.fun支付模板
SKILL.md:1
提权 部署该模板后,服务器持有所有用户存款钱包的Base58编码私钥
assets/template/src/server.js:55
影响 数据库被攻破后,攻击者可解码私钥并控制所有用户存款钱包(SOL/代币)
assets/template/src/server.js:52

安全发现 5 项

严重性 安全发现 位置
高危
SKILL.md声明与代码行为不符:交易签名 文档欺骗
SKILL.md安全规则明确声明"Never sign transactions on behalf of the user",但server.js第119行(server.cjs第124行)buildAndPayInvoice函数中执行了tx.sign(payerKeypair),代表用户(存款钱包)签署交易。
tx.sign(payerKeypair);
→ 若此行为预期功能则修改SKILL.md声明;若非预期则移除该行代码并使用Pump SDK的代付机制。
assets/template/src/server.js:119
高危
SKILL.md未声明私钥存储行为 文档欺骗
SKILL.md仅声明"Never log or output private keys / secret key material",但代码在SQLite deposit_wallets表中以deposit_secret_b58字段存储Base58编码的私钥,可被解码还原私钥。
db.prepare('INSERT INTO deposit_wallets (..., deposit_secret_b58, ...) VALUES (?,?,?,?)')
→ 1) 在SKILL.md添加"Stores generated deposit keypairs in SQLite"声明;2) 生产环境应使用HSM或钱包SDK的委托机制替代直接存储私钥。
assets/template/src/server.js:55
中危
用户私钥在服务器端生成 敏感访问
getOrCreateDepositWallet为每个用户生成新的Keypair并存储私钥,服务器掌握所有用户存款钱包的私钥,数据库被攻破则所有钱包被盗。
const kp = Keypair.generate(); const secretB58 = bs58.encode(kp.secretKey);
→ 使用PDA(Program Derived Address)或分层钱包避免服务器持有私钥。
assets/template/src/server.js:52
中危
依赖版本未锁定 供应链
package.json所有依赖使用^前缀版本范围,允许自动升级,存在依赖供应链攻击风险。
"@pump-fun/agent-payments-sdk": "3.0.0"
→ 使用package-lock.json并验证SHA256,或使用npm install --package-lock-only生成lock文件。
assets/template/package.json:12
低危
票据验证逻辑允许小额欺骗 权限提升
waitForDeposit使用绝对金额检查(bal >= lamports),用户可向钱包汇入超过请求金额的SOL,系统仍会接受。
if (bal - startBal >= lamports) { return { receivedLamports: bal - startBal, balance: bal }; }
→ 根据业务需求决定是否需要精确金额匹配。
assets/template/src/server.js:74
资源类型声明权限推断权限状态证据
文件系统 READ READ ✓ 一致 scripts/stamp_template.sh:29 tar复制模板目录
命令执行 NONE NONE 无shell命令执行
网络访问 READ READ ✓ 一致 server.js:188 fastify.listen仅绑定127.0.0.1
数据库 WRITE WRITE ✗ 越权 server.js:55-60 未在SKILL.md声明SQLite存储deposit_secret_b58
10 项发现
🔗
中危 外部 URL 外部 URL
http://127.0.0.1:3033
assets/template/README-FAST.md:4
🔗
中危 外部 URL 外部 URL
http://127.0.0.1:3033/health
assets/template/README.md:19
🔗
中危 外部 URL 外部 URL
https://opencollective.com/fastify
assets/template/package-lock.json:111
🔗
中危 外部 URL 外部 URL
https://paulmillr.com/funding/
assets/template/package-lock.json:275
🔗
中危 外部 URL 外部 URL
https://www.patreon.com/feross
assets/template/package-lock.json:758
🔗
中危 外部 URL 外部 URL
https://feross.org/support
assets/template/package-lock.json:762
🔗
中危 外部 URL 外部 URL
https://opencollective.com/express
assets/template/package-lock.json:987
🔗
中危 外部 URL 外部 URL
https://dotenvx.com
assets/template/package-lock.json:1079
💰
中危 钱包地址 加密货币钱包地址
3j5fMGzUMCxWBJ3dV3a7Wz8y2f
assets/template/package-lock.json:1141
🔗
中危 外部 URL 外部 URL
https://paypal.me/kozjak
assets/template/package-lock.json:1768

目录结构

11 文件 · 114.6 KB · 3298 行
JSON 2f · 2239L JavaScript 4f · 858L Markdown 4f · 160L Shell 1f · 41L
├─ 📁 assets
│ └─ 📁 template
│ ├─ 📁 src
│ │ ├─ 📜 server.cjs JavaScript 324L · 11.5 KB
│ │ ├─ 📜 server.js JavaScript 251L · 8.5 KB
│ │ ├─ 📜 standalone-telegram.cjs JavaScript 142L · 4.4 KB
│ │ └─ 📜 telegram-bot.cjs JavaScript 141L · 4.6 KB
│ ├─ 📋 package-lock.json JSON 2215L · 79.5 KB
│ ├─ 📋 package.json JSON 24L · 537 B
│ ├─ 📝 README-FAST.md Markdown 31L · 635 B
│ └─ 📝 README.md Markdown 30L · 607 B
├─ 📁 references
│ └─ 🔑 PUMP_TOKENIZED_AGENTS.md Markdown 21L · 805 B
├─ 📁 scripts
│ └─ 🔧 stamp_template.sh Shell 41L · 1.0 KB
└─ 📝 SKILL.md Markdown 78L · 2.4 KB

依赖分析 5 项

包名版本来源已知漏洞备注
@pump-fun/agent-payments-sdk 3.0.0 npm ^前缀版本范围
@solana/web3.js ^1.98.0 npm ^前缀版本范围
better-sqlite3 ^12.6.2 npm ^前缀版本范围
dotenv ^17.3.1 npm ^前缀版本范围
fastify ^5.8.2 npm ^前缀版本范围

安全亮点

✓ 有API Token认证机制保护端点
✓ 使用@fastify/rate-limit进行速率限制
✓ 使用zod进行严格的输入验证
✓ 服务器仅绑定127.0.0.1而非0.0.0.0
✓ 使用事务确认机制处理区块链交易
✓ 有防重放的invoice状态管理