安全决策报告

odds-movement-monitor-v2026

Hardcoded billing API key and undeclared network communications to skillpay.me for user payment charges, with documentation mismatch between SKILL.md and skill-card.md.

安装决策优先 来源: ClawHub 扫描时间: 2026/6/24
文件 11
IOC 6
越权项 3
发现 4
最直接的威胁证据

为什么得出这个结论

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

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

阻止
隐藏执行与外联

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

通过
攻击链与高危发现

没有形成明确的恶意路径。

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

风险分是怎么被拉高的

Hardcoded billing API key +20

Sensitive credential 'sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2' hardcoded in payment.py:12

Undeclared billing module +15

SKILL.md does not declare payment.py module or SkillPay integration

Doc-to-code mismatch +10

skill-card.md mentions billing risks, but SKILL.md has no billing declaration

最关键的证据

中危 凭证窃取

Hardcoded Billing API Key

A sensitive API key for SkillPay billing service is hardcoded directly in payment.py source code at line 12. This credential should be stored securely via environment variables or a secrets manager.

payment.py:12
Replace with os.getenv('BILLING_API_KEY') and provide instructions for users to set the environment variable.
中危 文档欺骗

Undeclared Network Communications

The skill makes HTTP POST requests to skillpay.me for user billing without declaring this behavior in SKILL.md. Users are charged 0.01 USDT per invocation without explicit consent mechanism documented.

payment.py:24
Add billing/charging behavior documentation in SKILL.md. Implement explicit user consent flow.
中危 文档欺骗

Documentation Mismatch

skill-card.md explicitly mentions 'SkillPay billing can attempt a 0.01 USDT charge' as a known risk, but SKILL.md contains no mention of billing functionality. This creates confusion about actual behavior.

SKILL.md:1
Align SKILL.md with skill-card.md by adding a billing/pricing section.
低危 敏感访问

Environment Variable Reading

The skill reads SKILLPAY_USER_ID from environment variables without declaring this dependency. This is used to identify users for billing purposes.

payment.py:54
Document required environment variables in SKILL.md.

声明能力 vs 实际能力

文件系统 阻止
声明 NONE
推断 WRITE
monitor.py:76-82 creates SQLite database
网络访问 阻止
声明 READ
推断 READ+WRITE
payment.py:24-26 POSTs to skillpay.me billing API
环境变量 阻止
声明 NONE
推断 READ
payment.py:54 reads SKILLPAY_USER_ID

可疑产物与外联

高危 API 密钥
API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2"

payment.py:12

中危 外部 URL
https://api.the-odds-api.com/v4

config.json:15

中危 外部 URL
https://the-odds-api.com/

monitor.py:527

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

payment.py:11

中危 外部 URL
https://clawhub.ai/user/shenmeng

skill-card.md:7

中危 外部 URL
https://clawhub.ai/shenmeng/shenmeng-odds-movement-monitor

skill-card.md:29

依赖与供应链

包名版本来源漏洞备注
aiohttp >=3.8.0 pip Minimum version specified, but not upper-bounded
requests >=2.28.0 pip Minimum version specified, but not upper-bounded

文件构成

11 个文件 · 1655 行
Python 5 个文件 · 1432 行Markdown 3 个文件 · 167 行JSON 2 个文件 · 54 行Text 1 个文件 · 2 行
需关注文件 · 5
config.json JSON · 49 行
https://api.the-odds-api.com/v4
monitor.py Python · 597 行
https://the-odds-api.com/
payment.py Python · 142 行
Hardcoded Billing API Key · Undeclared Network Communications · Environment Variable Reading · API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2" · https://skillpay.me
skill-card.md Markdown · 45 行
https://clawhub.ai/user/shenmeng · https://clawhub.ai/shenmeng/shenmeng-odds-movement-monitor
SKILL.md Markdown · 42 行
Documentation Mismatch
其他文件 · change_detector.py · demo.py · README.md · __init__.py · _meta.json · requirements.txt

安全亮点

No reverse shell or command execution code detected
No base64-encoded obfuscated payloads found
No credential exfiltration or data theft patterns observed
No access to sensitive paths like ~/.ssh, ~/.aws, or .env files
No malicious dependencies in requirements.txt (only aiohttp and requests, both pinned)