China Stock Sentiment
The skill uses undeclared shell execution (child_process.execSync) to invoke another skill, a capability not declared in SKILL.md's documented allowed-tools or capability model.
为什么得出这个结论
2/4 个维度触发发现 2 项声明之外的能力或越权行为。
提取到 2 个一般风险产物,需要结合上下文判断。
报告包含 3 步攻击链,另有 1 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
攻击链
初始入口 · SKILL.md:1
权限提升 · index.js:53
权限提升 · index.js:139
风险分是怎么被拉高的
SKILL.md declares 'web_fetch/web_search' but index.js:53 uses execSync('openclaw skill run baidu-hot-cn') — a shell:WRITE operation not mentioned anywhere in documentation.
saveReport() writes to memory/stock-sentiment/reports/ via fs.writeFileSync, exceeding the read-oriented '数据存储' description in SKILL.md which only names directories without declaring filesystem:WRITE capability.
SKILL.md frames baidu-hot-cn as a skill reference, hiding the actual subprocess.execSync mechanism. This is a classic doc-deception pattern.
最关键的证据
Undeclared shell execution via child_process.execSync
index.js imports child_process and uses execSync to run 'openclaw skill run baidu-hot-cn'. SKILL.md only documents 'web_fetch/web_search' and skill references, never mentioning subprocess/shell execution. This hidden mechanism is a significant doc-to-code mismatch.
index.js:53 Undeclared filesystem WRITE beyond documented scope
SKILL.md's '数据存储' section names directories (memory/stock-sentiment/) but never declares filesystem:WRITE. The saveReport() function writes markdown reports to disk, which is write access beyond the 'read news' framing of the skill.
index.js:139 Marketing content in SKILL.md not in README.md
SKILL.md contains pricing tables, monetization strategies, and development TODOs that mix user-facing marketing with capability documentation, making it harder to identify actual permitted actions.
SKILL.md:89 声明能力 vs 实际能力
index.js:139 fs.writeFileSync(outputPath, markdown) index.js:54 execSync('openclaw skill run baidu-hot-cn') No direct network calls; web access delegated to baidu-hot-cn skill via subprocess No os.environ access detected 可疑产物与外联
https://clawhub.ai/skills/china-stock-sentiment/docs README.md:87
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| fs | builtin | node | 否 | Node.js built-in module — no external dependency risk |
| path | builtin | node | 否 | Node.js built-in module |
| child_process | builtin | node | 否 | Node.js built-in module — used for execSync |
文件构成
index.js SKILL.md README.md