odds-movement-monitor
技能功能正常但存在硬编码第三方API密钥的严重安全问题,可能导致凭证滥用风险
Why this conclusion was reached
3/4 dimensions flagged2 undeclared or violating capabilities were inferred.
1 high-risk artifacts or egress signals were extracted.
The report includes 3 attack-chain steps and 1 severe findings.
2 dependency or supply-chain issues need attention.
Attack Chain
Entry · SKILL.md:1
Escalation · payment.py:12
Impact · payment.py:43
What drove the risk score up
payment.py:12 硬编码了SkillPay API密钥,任何代码访问者都可使用
SKILL.md未说明API密钥配置方式,用户无法知晓是否需要自备密钥
monitor.py创建本地SQLite数据库odds_data.db,文档未声明
访问skillpay.me和the-odds-api.com,属于功能必要但未充分说明
Most important evidence
硬编码第三方API密钥
payment.py第12行硬编码了SkillPay的API密钥'sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2'。这意味着:1)密钥对所有代码访问者可见 2)可能被滥用于冒充技能作者进行扣费 3)消耗技能作者的API配额
payment.py:12 未声明本地数据存储
monitor.py会创建本地SQLite数据库odds_data.db存储赔率历史,但SKILL.md未提及此功能
monitor.py:35 未声明的环境变量依赖
代码依赖SKILLPAY_USER_ID和ODDS_API_KEY环境变量,但SKILL.md未说明
payment.py:24 依赖包版本未锁定
requirements.txt中aiohttp和requests使用>=约束,存在供应链风险
requirements.txt:1 Declared capability vs actual capability
monitor.py:35 创建本地SQLite数据库odds_data.db payment.py:43 向skillpay.me发送POST请求扣费 — payment.py:11 读取SKILLPAY_USER_ID, payment.py:24 读取ODDS_API_KEY Suspicious artifacts and egress
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
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| aiohttp | >=3.8.0 | pip | No | 无版本锁定 |
| requests | >=2.28.0 | pip | No | 无版本锁定 |
File composition
config.json monitor.py payment.py requirements.txt