This report was generated in Chinese. Some content may be in Chinese.
Suspicious — Risk Score 55/100
Last scan:3 hr ago Rescan
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数据库。
Skill Namepumpclaw-agent
Duration62.7s
Enginepi
ClawHub Pumpfun Agent Integration v1.0.1 by belimad
📥 167 ⭐ 1
ClawHub Verdict Suspicious env_credential_accessllm_suspiciousvt_suspicious
Use with caution
1) 修正SKILL.md文档,移除"never sign transactions"声明或删除签名代码;2) 添加私钥存储的安全警告;3) 生产环境应使用HSM/密钥管理服务替代数据库存储私钥。

Attack Chain 3 steps

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

Findings 5 items

Severity Finding Location
High
SKILL.md声明与代码行为不符:交易签名 Doc Mismatch
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
High
SKILL.md未声明私钥存储行为 Doc Mismatch
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
Medium
用户私钥在服务器端生成 Sensitive Access
getOrCreateDepositWallet为每个用户生成新的Keypair并存储私钥,服务器掌握所有用户存款钱包的私钥,数据库被攻破则所有钱包被盗。
const kp = Keypair.generate(); const secretB58 = bs58.encode(kp.secretKey);
→ 使用PDA(Program Derived Address)或分层钱包避免服务器持有私钥。
assets/template/src/server.js:52
Medium
依赖版本未锁定 Supply Chain
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
Low
票据验证逻辑允许小额欺骗 Priv Escalation
waitForDeposit使用绝对金额检查(bal >= lamports),用户可向钱包汇入超过请求金额的SOL,系统仍会接受。
if (bal - startBal >= lamports) { return { receivedLamports: bal - startBal, balance: bal }; }
→ 根据业务需求决定是否需要精确金额匹配。
assets/template/src/server.js:74
ResourceDeclaredInferredStatusEvidence
Filesystem READ READ ✓ Aligned scripts/stamp_template.sh:29 tar复制模板目录
Shell NONE NONE 无shell命令执行
Network READ READ ✓ Aligned server.js:188 fastify.listen仅绑定127.0.0.1
Database WRITE WRITE ✗ Violation server.js:55-60 未在SKILL.md声明SQLite存储deposit_secret_b58
10 findings
🔗
Medium External URL 外部 URL
http://127.0.0.1:3033
assets/template/README-FAST.md:4
🔗
Medium External URL 外部 URL
http://127.0.0.1:3033/health
assets/template/README.md:19
🔗
Medium External URL 外部 URL
https://opencollective.com/fastify
assets/template/package-lock.json:111
🔗
Medium External URL 外部 URL
https://paulmillr.com/funding/
assets/template/package-lock.json:275
🔗
Medium External URL 外部 URL
https://www.patreon.com/feross
assets/template/package-lock.json:758
🔗
Medium External URL 外部 URL
https://feross.org/support
assets/template/package-lock.json:762
🔗
Medium External URL 外部 URL
https://opencollective.com/express
assets/template/package-lock.json:987
🔗
Medium External URL 外部 URL
https://dotenvx.com
assets/template/package-lock.json:1079
💰
Medium Wallet Address 加密货币钱包地址
3j5fMGzUMCxWBJ3dV3a7Wz8y2f
assets/template/package-lock.json:1141
🔗
Medium External URL 外部 URL
https://paypal.me/kozjak
assets/template/package-lock.json:1768

File Tree

11 files · 114.6 KB · 3298 lines
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

Dependencies 5 items

PackageVersionSourceKnown VulnsNotes
@pump-fun/agent-payments-sdk 3.0.0 npm No ^前缀版本范围
@solana/web3.js ^1.98.0 npm No ^前缀版本范围
better-sqlite3 ^12.6.2 npm No ^前缀版本范围
dotenv ^17.3.1 npm No ^前缀版本范围
fastify ^5.8.2 npm No ^前缀版本范围

Security Positives

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