aicoin-monitor
SKILL.md explicitly claims 'strict isolation mode' with multiple 'never' statements (never read global config, never read env vars, never write to global paths), but the actual code violates every single one of these claims.
Why this conclusion was reached
2/4 dimensions flagged2 undeclared or violating capabilities were inferred.
8 lower-risk artifacts were extracted and still need context.
The report includes 4 attack-chain steps and 4 severe findings.
2 dependency or supply-chain issues need attention.
Attack Chain
Entry · SKILL.md:1
Escalation · scripts/monitor.py:24
Escalation · scripts/monitor.py:57
Impact · scripts/monitor.py:252
What drove the risk score up
SKILL.md line '✅ 绝不读取 /root/.openclaw-zero/config.yaml' but monitor.py:24 reads exactly that path
SKILL.md '✅ 绝不读取 任何环境变量' but monitor.py:57-59 reads HTTP_PROXY/HTTPS_PROXY
SKILL.md '✅ 绝不写入 /root/.openclaw-zero/workspace/memory/' but monitor.py:252 writes there
load_proxy_from_config() at line 48 reads /root/.openclaw-zero/config.yaml
Most important evidence
SKILL.md claims strict isolation but reads global config file
The documentation explicitly states '✅ 绝不读取 /root/.openclaw-zero/config.yaml 或任何全局配置文件', yet the code at line 24 reads exactly that path.
scripts/monitor.py:24 SKILL.md claims no env var access but code reads proxy env vars
The documentation states '✅ 绝不读取 任何环境变量(包括 AICOIN_API_KEY、HTTP_PROXY 等)', yet the code reads HTTP_PROXY and HTTPS_PROXY at lines 57-59.
scripts/monitor.py:57 SKILL.md claims no global path write but code writes to /root/.openclaw-zero/
The documentation states '✅ 绝不写入 /root/.openclaw-zero/workspace/memory/ 或任何全局路径', yet the save_data() function writes data to exactly that path.
scripts/monitor.py:252 Proxy configuration loaded from global config file
load_proxy_from_config() reads /root/.openclaw-zero/config.yaml to extract proxy settings including support for multiple proxy configurations with names and addresses.
scripts/monitor.py:48 SKILL.md describes features not present in monitor.py
SKILL.md advertises 30+ data modules (on-chain, ETF, derivatives, whales, etc.) but monitor.py only implements basic price fetching, large orders, signals, and news — a significant feature mismatch.
SKILL.md:1 Declared capability vs actual capability
monitor.py:252 - writes to /root/.openclaw-zero/workspace/memory/ monitor.py:57-59 - reads HTTP_PROXY, HTTPS_PROXY env vars Uses requests to api.aicoin.com Suspicious artifacts and egress
http://127.0.0.1:7890 SKILL.md:138
https://www.aicoin.com SKILL.md:399
https://docs.aicoin.com SKILL.md:400
https://www.aicoin.com/zh-Hans/opendata SKILL.md:401
https://api.aicoin.com/v1/market/ticker?symbol= scripts/monitor.py:107
https://api.aicoin.com/v1/large/orders?symbol= scripts/monitor.py:218
https://api.aicoin.com/v1/signals?symbol= scripts/monitor.py:236
https://api.aicoin.com/v1/news/flash?symbol= scripts/monitor.py:254
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| requests | * | pip | No | No version pinned, no known vulnerabilities |
| pyyaml | * | pip | No | No version pinned |
File composition
scripts/monitor.py SKILL.md