search
SKILL.md声明仅使用web_fetch进行网络搜索,但代码实际通过api.exec()执行本地Python脚本,且硬编码了Tavily API密钥,存在声明-行为不符的阴影功能。
Why this conclusion was reached
2/4 dimensions flagged2 undeclared or violating capabilities were inferred.
5 lower-risk artifacts were extracted and still need context.
The report includes 3 attack-chain steps and 2 severe findings.
Dependencies are present but no obvious high-risk issue stands out.
Attack Chain
Entry · SKILL.md:1
Escalation · plugin.ts:64
Impact · plugin.ts:64
What drove the risk score up
SKILL.md仅声明search_web使用web_fetch,但plugin.ts:64使用api.exec()执行本地Python脚本
providers/tavily.ts:25和plugin.ts:66硬编码了Tavily开发密钥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
plugin.ts:65存在D:\winopenclaw路径,代码意图不清晰且不可移植
Most important evidence
未声明的本地脚本执行
SKILL.md声明search_web使用web_fetch进行网络搜索,但plugin.ts:64实际通过api.exec()执行本地Python脚本D:\winopenclaw\workspace\skills\_legacy\tavily\search_tavily_news.py,这是典型的阴影功能
plugin.ts:64 硬编码API密钥泄露风险
在providers/tavily.ts:25和plugin.ts:66硬编码了Tavily开发API密钥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,任何能访问代码的人都可以使用此密钥
providers/tavily.ts:25 声明权限与实际能力不符
SKILL.md未声明任何shell或filesystem权限,但代码推断出shell:WRITE和filesystem:READ权限,用户无法根据文档评估真实风险
plugin.ts:1 无依赖版本锁定
代码中使用了crypto模块但未在package.json中声明,且无版本锁定,可能引入恶意依赖
cache.ts:20 代码结构混乱
plugin.ts存在重复的searxng和multi分支逻辑,代码质量低下可能导致安全隐患
plugin.ts:108 Declared capability vs actual capability
SKILL.md声明web_fetch用于搜索 plugin.ts:64 api.exec()调用本地Python脚本 api.exec()执行本地路径D:\winopenclaw\workspace\skills\_legacy\tavily\search_tavily_news.py Suspicious artifacts and egress
http://127.0.0.1:8080 plugin.ts:74
https://www.baidu.com/s?wd=$ plugin.ts:147
https://cn.bing.com/search?q=$ plugin.ts:148
https://www.google.com/search?q=$ plugin.ts:149
https://api.tavily.com/search providers/tavily.ts:12
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| crypto | built-in | nodejs | No | Node.js内置模块 |
File composition
plugin.ts cache.ts providers/tavily.ts