安全决策报告

dex-arbitrage

Undeclared payment/billing system with hardcoded API key exposes credential; SKILL.md falsely presents tool as general-purpose DEX arbitrage without disclosing mandatory per-call charges.

安装决策优先 来源: 手动上传 扫描时间: 2026/4/3
文件 11
IOC 51
越权项 2
发现 4
最直接的威胁证据
高危 文档欺骗
Undeclared mandatory payment/billing system

SKILL.md describes a free DEX arbitrage assistant but payment.py silently implements a mandatory billing system charging 0.01 USDT per invocation. Users are unaware they will be charged. The _meta.json declares pricing but SKILL.md never mentions it.

payment.py:1

为什么得出这个结论

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

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

阻止
隐藏执行与外联

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

阻止
攻击链与高危发现

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

复核
依赖与供应链卫生

没有完整依赖信息,供应链判断需要保留弹性。

风险分是怎么被拉高的

Doc deception - undeclared billing system +20

SKILL.md describes free arbitrage tools but payment.py charges 0.01 USDT per call; billing functionality never mentioned in docs

Hardcoded API credential in source +20

BILLING_API_KEY hardcoded in plaintext at payment.py:12 — exposes service credential to repo/public

Undeclared network access +10

SKILL.md declares no allowed-tools; payment.py silently makes HTTPS requests to skillpay.me

Silent data transmission +5

User IDs from SKILLPAY_USER_ID env var are sent to external endpoint

最关键的证据

高危 文档欺骗

Undeclared mandatory payment/billing system

SKILL.md describes a free DEX arbitrage assistant but payment.py silently implements a mandatory billing system charging 0.01 USDT per invocation. Users are unaware they will be charged. The _meta.json declares pricing but SKILL.md never mentions it.

payment.py:1
Add prominent billing disclosure in SKILL.md including pricing (0.01 USDT/call), payment provider (skillpay.me), and required environment variables (SKILLPAY_USER_ID, SKILLPAY_API_KEY)
高危 凭证窃取

Hardcoded API key exposed in source code

BILLING_API_KEY = 'sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2' is hardcoded at payment.py:12. This credential is permanently embedded in the skill package and visible to anyone who inspects the code.

payment.py:12
Move BILLING_API_KEY to an environment variable (SKILLPAY_API_KEY as noted in _meta.json), never hardcode credentials in source files
中危 文档欺骗

Missing allowed-tools declaration

SKILL.md declares no allowed-tools. The skill performs network requests (to skillpay.me and DEX APIs) and reads environment variables, but these resource accesses are not declared in the skill manifest.

SKILL.md:1
Add allowed-tools declaration to SKILL.md: network:READ for DEX API calls, environment:READ for SKILLPAY_USER_ID
低危 数据外泄

User ID transmitted to external endpoint

verify_payment() reads SKILLPAY_USER_ID from environment and sends it to skillpay.me/api/v1/billing/* endpoints. While this is necessary for billing, it is undeclared and the endpoint's data handling policy is unknown.

payment.py:99
Document what data is sent to skillpay.me, provide privacy policy link, and consider making the endpoint configurable

声明能力 vs 实际能力

文件系统 通过
声明 NONE
→
推断 NONE
No file writes in code; scripts are generators/calculators only
网络访问 阻止
声明 NONE
→
推断 READ
payment.py:27-30 sends POST to skillpay.me; price_monitor.py:43-49 fetches DEX prices — no declaration in SKILL.md
命令执行 通过
声明 NONE
→
推断 NONE
No subprocess/shell execution found
环境变量 阻止
声明 NONE
→
推断 READ
payment.py:99 reads SKILLPAY_USER_ID from os.environ without declaration

可疑产物与外联

高危 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

依赖与供应链

没有结构化依赖告警。

文件构成

11 个文件 · 3911 行
Markdown 6 个文件 · 2517 行Python 4 个文件 · 1375 行JSON 1 个文件 · 19 行
需关注文件 · 6
scripts/flashloan_generator.py Python · 545 行
0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e · 0xE592427A0AEce92De3Edee1F18E0157C05861564 · 0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F · 0xBA12222222228d8Ba445958a75a0704d566BF2C8 · 0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb · 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506
SKILL.md Markdown · 542 行
Missing allowed-tools declaration
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 行
Undeclared mandatory payment/billing system · Hardcoded API key exposed in source code · User ID transmitted to external endpoint · API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2" · https://skillpay.me
其他文件 · arbitrage_calculator.py · flashloan-arbitrage.md · bridge-guide.md · arbitrage-basics.md · _meta.json

安全亮点

No reverse shell, C2 infrastructure, or remote code execution patterns found
Python scripts are calculation/generation utilities — no direct wallet draining code
flashloan_generator.py generates Solidity contract templates, not malicious contracts
No base64 obfuscation, eval chains, or anti-analysis techniques detected
No access to ~/.ssh, ~/.aws, .env, or other sensitive filesystem paths
No cron/persistence mechanisms or startup hooks present
DEX price APIs (CoinGecko, 1inch, The Graph) are legitimate and relevant to stated purpose