tweet-monitor-pro
Tweet Monitor Pro 存在多处文档-行为差异:未声明的 shell 执行能力、依赖外部引用脚本、声称零依赖但实际存在隐藏依赖关系。
Why this conclusion was reached
2/4 dimensions flagged2 undeclared or violating capabilities were inferred.
2 lower-risk artifacts were extracted and still need context.
The report includes 3 attack-chain steps and 2 severe findings.
Dependency information is incomplete, so supply-chain confidence stays limited.
Attack Chain
Entry · SKILL.md:1
Escalation · index.js:97
Impact · /root/.openclaw/workspace/skills/x-tweet-fetcher/scripts/fetch_tweet.py:1
What drove the risk score up
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,未在文档中明确声明
Most important evidence
文档声称零依赖但实际存在外部脚本依赖
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 Declared capability vs actual capability
index.js:97-107 execSync调用 index.js:22-26 fs.writeFileSync写入quotas.json SKILL.md声明使用FxTwitter端点 Suspicious artifacts and egress
https://x.com/user/status/123456 README.md:54
https://skillpay.me README.md:97
Dependencies and supply chain
There are no structured dependency warnings.
File composition
index.js README.md