安全决策报告

dex-arbitrage

Skill contains a hardcoded API key exposed in source code and makes undeclared network requests, but scripts are benign calculators and generators without malicious execution capabilities.

安装决策优先 来源: ClawHub 扫描时间: 9 天前
文件 12
IOC 52
越权项 1
发现 3
最直接的威胁证据
高危 凭证窃取
Hardcoded API Key in Source Code

A BILLING_API_KEY is hardcoded directly in payment.py line 12. This API key is exposed in the package distribution and could be stolen if the source code is accessed. API keys should be stored in environment variables, not hardcoded.

payment.py:12

为什么得出这个结论

3/4 个维度触发
阻止
声明与实际能力

发现 1 项声明之外的能力或越权行为。

阻止
隐藏执行与外联

提取到 1 个高危 IOC 或外联信号。

阻止
攻击链与高危发现

报告包含 0 步攻击链,另有 1 项高危或严重发现。

复核
依赖与供应链卫生

发现 1 项需要关注的依赖或供应链线索。

风险分是怎么被拉高的

Hardcoded API key in source +25

BILLING_API_KEY hardcoded in payment.py:12 - exposed in package distribution

Undeclared network access +15

Scripts make requests to skillpay.me and crypto APIs not declared in SKILL.md

最关键的证据

高危 凭证窃取

Hardcoded API Key in Source Code

A BILLING_API_KEY is hardcoded directly in payment.py line 12. This API key is exposed in the package distribution and could be stolen if the source code is accessed. API keys should be stored in environment variables, not hardcoded.

payment.py:12
Replace hardcoded key with os.environ.get('SKILLPAY_API_KEY') and document required environment variables
中危 文档欺骗

Undeclared Network Access

SKILL.md does not declare any network permissions, but scripts make requests to external services: skillpay.me (billing), thegraph.com (DEX data), coingecko.com (prices), curve.fi (pool data). This violates the doc-to-code matching principle.

SKILL.md:1
Add 'network:READ' to declared permissions if external API calls are intended
低危 供应链

Unpinned Dependency (requests library)

payment.py uses 'import requests' without version pinning, which could allow malicious updates.

payment.py:3
Add requirements.txt with pinned versions: requests>=2.28.0

声明能力 vs 实际能力

网络访问 阻止
声明 NONE
推断 READ
payment.py:25 requests.get(f'{BILLING_API_URL}/api/v1/billing/balance')
文件系统 通过
声明 NONE
推断 NONE
No file operations found in scripts
命令执行 通过
声明 NONE
推断 NONE
No subprocess/os.system calls found

可疑产物与外联

高危 API 密钥
API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2"

payment.py:12

中危 外部 URL
https://skillpay.me

payment.py:11

中危 外部 URL
https://dexscreener.com/

references/arbitrage-tools.md:7

中危 外部 URL
https://www.coingecko.com/

references/arbitrage-tools.md:25

中危 外部 URL
https://api.coingecko.com/api/v3/simple/price?ids=

references/arbitrage-tools.md:32

中危 外部 URL
https://portal.1inch.dev/

references/arbitrage-tools.md:47

中危 外部 URL
https://api.1inch.dev/swap/v5.2/1/quote?

references/arbitrage-tools.md:58

中危 外部 URL
https://eth.llamarpc.com

references/arbitrage-tools.md:99

中危 外部 URL
https://api.0x.org/swap/v1/quote?

references/arbitrage-tools.md:144

中危 外部 URL
https://li.quest/v1/quote

references/arbitrage-tools.md:163

中危 外部 URL
https://socket.tech/

references/arbitrage-tools.md:177

中危 外部 URL
https://across.to/

references/arbitrage-tools.md:186

依赖与供应链

包名版本来源漏洞备注
requests * pip Version not pinned

文件构成

12 个文件 · 3943 行
Markdown 7 个文件 · 2563 行Python 4 个文件 · 1375 行JSON 1 个文件 · 5 行
需关注文件 · 7
scripts/flashloan_generator.py Python · 545 行
0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e · 0xE592427A0AEce92De3Edee1F18E0157C05861564 · 0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F · 0xBA12222222228d8Ba445958a75a0704d566BF2C8 · 0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb · 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506
SKILL.md Markdown · 542 行
Undeclared Network Access
scripts/price_monitor.py Python · 293 行
https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3 · https://api.thegraph.com/subgraphs/name/sushiswap/exchange · https://api.curve.fi/api/getPools
references/arbitrage-tools.md Markdown · 461 行
https://dexscreener.com/ · https://www.coingecko.com/ · https://api.coingecko.com/api/v3/simple/price?ids= · https://portal.1inch.dev/ · https://api.1inch.dev/swap/v5.2/1/quote? · https://eth.llamarpc.com · https://api.0x.org/swap/v1/quote? · https://li.quest/v1/quote · https://socket.tech/ · https://across.to/ · https://protect.flashbots.net/ · https://rpc.flashbots.net · https://www.edennetwork.io/ · https://api.edennetwork.io/v1/rpc · https://cowswap.exchange/ · https://dune.com/ · https://eigenphi.io/ · https://explorer.flashbots.net/ · https://tenderly.co/ · https://book.getfoundry.sh/ · https://hardhat.org/ · https://zapper.fi/ · https://debank.com/ · https://www.alchemy.com/ · https://infura.io/ · https://www.quicknode.com/ · https://rpc.ankr.com/eth · https://ethereum.publicnode.com · https://arb1.arbitrum.io/rpc · https://arbitrum.llamarpc.com · https://chainlist.org/ · https://docs.uniswap.org/ · https://docs.flashbots.net/ · https://docs.ethers.org/ · https://explore.flashbots.net/ · https://writings.flashbots.net/
references/mev-protection.md Markdown · 410 行
https://relay.flashbots.net · https://protect.flashbots.net/v1/rpc · https://rpc.mevblocker.io · https://cowswap.exchange
payment.py Python · 142 行
Hardcoded API Key in Source Code · Unpinned Dependency (requests library) · API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2" · https://skillpay.me
skill-card.md Markdown · 46 行
https://clawhub.ai/user/shenmeng
其他文件 · arbitrage_calculator.py · flashloan-arbitrage.md · bridge-guide.md · arbitrage-basics.md · _meta.json

安全亮点

No shell execution (subprocess/os.system) found in any script
No credential harvesting from os.environ iteration
No base64 encoded or obfuscated code detected
No access to sensitive paths (~/.ssh, ~/.aws, .env)
No reverse shell, C2, or data exfiltration mechanisms
Scripts are educational calculators and code generators - no direct wallet interaction
Smart contract code is template generation only, not deployment logic