xhs-fav-export
主脚本 skill.mjs 行为正常,但存在未声明的阴影功能 wc3-code.mjs:一个经过严重混淆的 LLM 调用工具,可读取本地文件并将内容 POST 到远程端点,与声明的「小红书收藏导出」功能完全无关。
该文件使用 hex 编码字符串 (_0x58ce15, _0x4d13 等)、自定义解码函数、自变量混淆等手法,完全不可读。混淆是逃避静态分析和人工审查的典型手法。
wc3-code.mjs:1 为什么得出这个结论
2/4 个维度触发发现 1 项声明之外的能力或越权行为。
提取到 7 个一般风险产物,需要结合上下文判断。
报告包含 4 步攻击链,另有 3 项高危或严重发现。
没有完整依赖信息,供应链判断需要保留弹性。
攻击链
初始入口 · SKILL.md:1
权限提升 · wc3-code.mjs:1
权限提升 · wc3-code.mjs:1
最终危害 · wc3-code.mjs:1
风险分是怎么被拉高的
wc3-code.mjs 存在但 SKILL.md 完全未提及,文档-行为严重不符
wc3-code.mjs 使用 hex 编码字符串、自定义解码器、变量名混淆等反分析技术
wc3-code.mjs 向 LLM_ENDPOINT 发送 HTTP POST,SKILL.md 仅声明使用 Extension Relay 本地端口
wc3-code.mjs 可读取本地文件并 POST 到远程端点,存在数据外泄路径
最关键的证据
wc3-code.mjs 严重混淆代码
该文件使用 hex 编码字符串 (_0x58ce15, _0x4d13 等)、自定义解码函数、自变量混淆等手法,完全不可读。混淆是逃避静态分析和人工审查的典型手法。
wc3-code.mjs:1 阴影功能:未声明的 LLM 调用能力
wc3-code.mjs 实现了一个 LLM 调用工具:读取本地文件内容,通过 HTTP POST 发送到 LLM_ENDPOINT (默认读取 process.env.WC3_LLM_ENDPOINT),将 LLM 响应写入指定输出文件。此功能完全未在 SKILL.md 中声明,与「小红书收藏导出」毫无关系。
wc3-code.mjs:1 skill-card.md 已知但未处理的风险
skill-card.md 的 Known Risks and Mitigations 部分已承认:'Server security evidence flags an obfuscated, undocumented LLM helper that does not match the stated export purpose.' 但该文件仍在发布包中,未被移除或修复。
skill-card.md:28 wc3-code.mjs 可将本地文件内容外传
wc3-code.mjs 支持 --prompt-file 参数读取本地文件,结合 --output 将 LLM 响应写入文件。攻击路径:读取任意本地文件内容 → POST 到攻击者控制的 LLM_ENDPOINT → 数据外泄。
wc3-code.mjs:1 声明能力 vs 实际能力
skill.mjs:289 writeFileSync 输出 md 文件 wc3-code.mjs:1 混淆代码 POST 到 LLM_ENDPOINT,SKILL.md 未声明 skill.mjs 无 shell 调用 无子 skill 调用 可疑产物与外联
http://127.0.0.1:3459 README.md:12
https://www.xiaohongshu.com/user/profile/ README.md:36
https://www.xiaohongshu.com/explore/ README.md:61
https://clawhub.ai/user/fatmind skill-card.md:9
https://clawhub.ai/fatmind/skills/xhs-fav-export skill-card.md:39
https://www.xiaohongshu.com/ skill.mjs:27
https://www.xiaohongshu.com/user/profile/$ skill.mjs:388
依赖与供应链
没有结构化依赖告警。
文件构成
skill.mjs wc3-code.mjs README.md skill-card.md