安全决策报告

xhs-note-analyst

wc3-code.mjs 存在严重的代码混淆和隐藏的网络通信行为,通过环境变量 WC3_LLM_ENDPOINT 可将用户 prompt 数据发送到外部任意端点,且 SKILL.md 完全未声明此行为。

安装决策优先 来源: ClawHub 扫描时间: 3 天前
文件 5
IOC 7
越权项 1
发现 6
最直接的威胁证据
严重 代码混淆
wc3-code.mjs 严重代码混淆

该文件仅 1 行但包含 7685 字节的混淆代码,使用 _0x46785b/_0x442a 等伪随机变量名、Base64 解码函数 decodeURIComponent、字符串拼接等反分析技术,隐藏真实的网络通信逻辑。

wc3-code.mjs:1

为什么得出这个结论

2/4 个维度触发
阻止
声明与实际能力

发现 1 项声明之外的能力或越权行为。

复核
隐藏执行与外联

提取到 7 个一般风险产物,需要结合上下文判断。

阻止
攻击链与高危发现

报告包含 4 步攻击链,另有 4 项高危或严重发现。

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

攻击链

01
用户安装并运行 skill,传入笔记分析任务

初始入口 · SKILL.md:1

02
skill.mjs 调用 wc3-code.mjs 子会话处理关键词提炼

权限提升 · skill.mjs:921

03
wc3-code.mjs 将用户 prompt(包含笔记标题、关键词等敏感数据)POST 到 WC3_LLM_ENDPOINT

最终危害 · wc3-code.mjs:1

04
外部端点接收数据后可存储、分析或转发,用户数据泄露

最终危害 · wc3-code.mjs:1

风险分是怎么被拉高的

代码混淆隐藏真实行为 +25

wc3-code.mjs 使用 JS 混淆(_0x46785b 等变量)+ Base64 解码逻辑,意图规避人工审查

未声明的外部网络通信 +30

wc3-code.mjs 通过 fetch 向 WC3_LLM_ENDPOINT 发送 prompt 数据,SKILL.md 完全没有提及

可配置的外传端点 +15

WC3_LLM_ENDPOINT 环境变量可指向任意外部服务器,用户数据可被窃取

子会话数据外泄风险 +15

关键词提炼、对标爆款筛选、改进动作生成的所有 prompt 均可能包含用户笔记内容

文档欺骗 +10

SKILL.md 声称「不需要任何第三方 API key」,但代码实际依赖外部 LLM 端点

最关键的证据

严重 代码混淆

wc3-code.mjs 严重代码混淆

该文件仅 1 行但包含 7685 字节的混淆代码,使用 _0x46785b/_0x442a 等伪随机变量名、Base64 解码函数 decodeURIComponent、字符串拼接等反分析技术,隐藏真实的网络通信逻辑。

wc3-code.mjs:1
拒绝使用任何包含混淆代码的 skill,要求发布者提供可读的源码
严重 数据外泄

未声明的外部 LLM 端点通信

wc3-code.mjs 通过 fetch 向 WC3_LLM_ENDPOINT 发送 HTTP POST 请求,包含用户的 prompt 数据(笔记标题、关键词、爆款分析等敏感内容)。SKILL.md 完全未声明此行为。

wc3-code.mjs:1
立即停止使用,确认 WC3_LLM_ENDPOINT 是否指向可信基础设施
高危 文档欺骗

SKILL.md 声明与实际行为严重不符

文档声称「不需要任何第三方 API key」,但代码实际会向外部 WC3_LLM_ENDPOINT 发送数据。用户笔记内容、关键词、分析结果等敏感数据均可能被外传。

SKILL.md:1
更新文档,明确说明 LLM 子会话的端点配置和数据流向
高危 供应链

wc3-code.mjs 端点来源不明

WC3_LLM_ENDPOINT 硬编码了 Base64 编码的默认端点,可通过环境变量覆盖。用户在不知情的情况下可能将敏感数据发送到恶意基础设施。

wc3-code.mjs:1
要求发布者公开默认端点的 URL,并确认其是否属于可信服务
中危 敏感访问

访问用户 ~/Downloads 目录

代码读取 ~/Downloads 目录下的 Excel 文件(创作者后台导出数据),包含用户笔记的详细分析数据。

skill.mjs:636
确认数据仅用于本地分析,不会被 wc3-code.mjs 的外部通信利用
中危 凭证窃取

复用 Chrome 登录态存在凭证泄露风险

该 skill 依赖 webclaw3 复用用户已登录的小红书 Chrome 会话。虽然本 skill 不直接访问凭证,但 webclaw3 扩展可能具备读取更多浏览器数据的权限。

skill.mjs:14
审查 webclaw3 扩展的权限范围,确保仅限创作者后台数据访问

声明能力 vs 实际能力

文件系统 通过
声明 NONE
推断 WRITE
skill.mjs:6-7 使用 readFileSync/writeFileSync/mkdirSync 操作本地文件
网络访问 阻止
声明 NONE
推断 WRITE
wc3-code.mjs:1 fetch() 向外部端点发送用户 prompt
命令执行 通过
声明 NONE
推断 READ
skill.mjs:10 spawn('python3') 执行本地 Python 脚本

可疑产物与外联

中危 外部 URL
https://clawhub.ai/fatmind/skills/webclaw3-browser-automation

README.md:16

中危 外部 URL
https://clawhub.ai/user/fatmind

skill-card.md:9

中危 外部 URL
https://clawhub.ai/fatmind/skills/xhs-note-analyst

skill-card.md:43

中危 外部 URL
http://127.0.0.1:3459

skill.mjs:15

中危 外部 URL
https://creator.xiaohongshu.com/statistics/data-analysis

skill.mjs:20

中危 外部 URL
https://www.xiaohongshu.com/

skill.mjs:21

中危 外部 URL
https://www.xiaohongshu.com/search_result_ai?keyword=

skill.mjs:580

依赖与供应链

包名版本来源漏洞备注
webclaw3 未指定 npm (clawhub) 依赖外部浏览器扩展,提供本地 Relay HTTP API (:3459)
openpyxl 未指定 pip 本地 Excel 解析,依赖合理

文件构成

5 个文件 · 1363 行
JavaScript 2 个文件 · 1106 行Markdown 3 个文件 · 257 行
需关注文件 · 5
skill.mjs JavaScript · 1105 行
访问用户 ~/Downloads 目录 · 复用 Chrome 登录态存在凭证泄露风险 · http://127.0.0.1:3459 · https://creator.xiaohongshu.com/statistics/data-analysis · https://www.xiaohongshu.com/ · https://www.xiaohongshu.com/search_result_ai?keyword=
wc3-code.mjs JavaScript · 1 行
wc3-code.mjs 严重代码混淆 · 未声明的外部 LLM 端点通信 · wc3-code.mjs 端点来源不明
README.md Markdown · 97 行
https://clawhub.ai/fatmind/skills/webclaw3-browser-automation
SKILL.md Markdown · 97 行
SKILL.md 声明与实际行为严重不符
skill-card.md Markdown · 63 行
https://clawhub.ai/user/fatmind · https://clawhub.ai/fatmind/skills/xhs-note-analyst

安全亮点

主脚本 skill.mjs 代码可读性良好,逻辑清晰
创作者后台数据导出基于官方 Excel,非爬虫行为
搜索结果仅使用公开可见的标题/作者/点赞数
skill-card.md 中 publisher 已标注 Known Risks