tweet-monitor-pro
Tweet Monitor Pro 存在多处文档-行为差异:未声明的 shell 执行能力、依赖外部引用脚本、声称零依赖但实际存在隐藏依赖关系。
为什么得出这个结论
2/4 个维度触发发现 2 项声明之外的能力或越权行为。
提取到 2 个一般风险产物,需要结合上下文判断。
报告包含 3 步攻击链,另有 2 项高危或严重发现。
没有完整依赖信息,供应链判断需要保留弹性。
攻击链
初始入口 · SKILL.md:1
权限提升 · index.js:97
最终危害 · /root/.openclaw/workspace/skills/x-tweet-fetcher/scripts/fetch_tweet.py:1
风险分是怎么被拉高的
SKILL.md未声明execSync使用,但代码第97-107行通过execSync执行python3命令
代码引用/root/.openclaw/workspace/skills/x-tweet-fetcher/scripts/fetch_tweet.py,该脚本不在技能包内
SKILL.md声称'Zero-dependency basics'但实际依赖外部Python脚本
第98行硬编码/root/.openclaw/workspace/skills/x-tweet-fetcher/scripts/fetch_tweet.py路径
通过fs.writeFileSync写入quotas.json,未在文档中明确声明
最关键的证据
文档声称零依赖但实际存在外部脚本依赖
SKILL.md Features部分声称'Zero-dependency basics: Fetch single tweets without Camofox',但index.js通过execSync依赖位于/root/.openclaw/workspace/skills/x-tweet-fetcher/scripts/fetch_tweet.py的外部Python脚本。这构成阴影功能。
index.js:98 未声明的shell执行能力
代码多处使用execSync执行python3命令(fetchTweet、fetchTimeline、monitorUser函数),这是shell:WRITE级别的操作,但SKILL.md和manifest.json均未声明此权限。
index.js:97 外部脚本引用存在供应链风险
代码硬编码引用外部路径/root/.openclaw/workspace/skills/x-tweet-fetcher/scripts/fetch_tweet.py,该脚本不在技能包内。如果该脚本被恶意替换或修改,将导致任意代码执行。
index.js:98 本地配额数据库读写
代码读写本地quotas.json文件存储用户配额信息,虽然这是商业功能所需,但未在文档中明确声明文件系统WRITE权限。
index.js:22 声明能力 vs 实际能力
index.js:97-107 execSync调用 index.js:22-26 fs.writeFileSync写入quotas.json SKILL.md声明使用FxTwitter端点 可疑产物与外联
https://x.com/user/status/123456 README.md:54
https://skillpay.me README.md:97
依赖与供应链
没有结构化依赖告警。
文件构成
index.js README.md