odds-movement-monitor-v2026
技能功能本身为合法的赔率监控系统,但存在多处文档-行为不符:SKILL.md未声明计费系统、未声明外部网络通信、未声明环境变量读取;payment.py中硬编码计费API密钥构成供应链风险。虽无直接恶意行为证据,但阴影功能特征明显。
为什么得出这个结论
2/4 个维度触发发现 4 项声明之外的能力或越权行为。
提取到 1 个高危 IOC 或外联信号。
没有形成明确的恶意路径。
发现 2 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
SKILL.md未提及SkillPay计费逻辑,但payment.py在verify_payment中读取SKILLPAY_USER_ID并扣费
payment.py:12 硬编码BILLING_API_KEY='sk_f03aa8f8...', 未使用环境变量注入
payment.py:59 读取SKILLPAY_USER_ID,payment.py:16读取ODDS_API_KEY,均未在SKILL.md声明
SKILL.md未声明连接skillpay.me,技能卡片虽提及但SKILL.md主文档缺失
最关键的证据
计费系统未在SKILL.md中声明
payment.py实现了完整的SkillPay计费系统:查询余额、扣费、生成充值链接,但SKILL.md对此只字未提。verify_payment()函数读取环境变量SKILLPAY_USER_ID并对用户扣费,属于影响用户财务的敏感操作。
SKILL.md:1 硬编码计费API密钥
payment.py:12 硬编码BILLING_API_KEY='sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2'。如代码仓库公开或AI Agent将该凭证输出给用户,将导致计费密钥泄露。
payment.py:12 外部服务通信未完整声明
SKILL.md完全未提及连接skillpay.me和api.the-odds-api.com。仅在skill-card.md(非主文档)中有少量外部URL提及。payment.py和monitor.py中的requests/aiohttp外部调用无文档背书。
SKILL.md:1 计费操作可无用户确认直接扣费
require_payment()函数在技能启动时自动执行,先charge_user再决定是否抛出异常。用户余额不足时显示充值链接。无用户授权确认机制。
payment.py:74 第三方依赖无版本锁定
requirements.txt中aiohttp>=3.8.0和requests>=2.28.0均为浮动版本。aiohttp历史上存在多个安全漏洞(CVE-2024-30281等),无版本锁定增加了供应链攻击面。
requirements.txt:1 声明能力 vs 实际能力
monitor.py:57-58 sqlite3.connect创建本地数据库odds_data.db payment.py:22-69 requests.post向skillpay.me发送POST请求含user_id+skill_id+amount payment.py:59 os.environ.get('SKILLPAY_USER_ID');monitor.py:24 os.getenv('ODDS_API_KEY') monitor.py:57-117 sqlite3创建并写入odds_data.db 可疑产物与外联
API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2" payment.py:12
https://api.the-odds-api.com/v4 config.json:15
https://the-odds-api.com/ monitor.py:527
https://skillpay.me payment.py:11
https://clawhub.ai/user/shenmeng skill-card.md:9
https://clawhub.ai/shenmeng/skills/shenmeng-odds-movement-monitor skill-card.md:39
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| aiohttp | >=3.8.0 | pip | 是 | 无版本锁定;aiohttp历史CVE(CVE-2024-30281等) |
| requests | >=2.28.0 | pip | 否 | 无版本锁定 |
文件构成
config.json monitor.py payment.py skill-card.md SKILL.md requirements.txt