低风险 — 风险评分 25/100
上次扫描:1 天前 重新扫描
25 /100
xhs-ai-detective-publisher
小红书自动发帖技能 - Xiaohongshu auto-posting skill with AI content generation
Legitimate Xiaohongshu auto-posting skill with undocumented shell execution for news fetching; no malicious behavior detected but documentation is incomplete.
技能名称xhs-ai-detective-publisher
分析耗时44.7s
引擎pi
可以安装
Document the execSync dependency in SKILL.md. The shell execution is legitimate (fetches news content) but should be declared to avoid surprising users.

安全发现 3 项

严重性 安全发现 位置
低危
Undeclared shell execution in fetchAINews() 文档欺骗
The fetchAINews() function uses execSync to run 'uv run /path/to/hn.py' for fetching HackerNews content. This shell execution is not declared in SKILL.md's capability requirements.
const result = execSync(`uv run ${HN_SCRIPT} search "AI" -n 5`, { timeout: 15000, encoding: 'utf8' });
→ Document that the skill executes shell commands via execSync to fetch news content from HackerNews.
scripts/xhs_ai_publisher.js:114
提示
Hardcoded HN script path is environment-specific 敏感访问
The HN_SCRIPT path references openclaw's internal skill directory, which may not be portable across installations.
/usr/local/lib/.nvm/versions/node/v22.17.0/lib/node_modules/openclaw/skills/others/hackernews/scripts/hn.py
→ Consider using an environment variable or checking if the path exists before attempting execution.
scripts/xhs_ai_publisher.js:102
提示
Pre-scan false positive: Chrome version misidentified as IP 敏感访问
The flagged '122.0.0.0' at line 835 is actually the Chrome browser version number in the User-Agent string, not an IP address.
Chrome/122.0.0.0
→ No action needed - this is a false positive from the pre-scan.
scripts/xhs_ai_publisher.js:835
资源类型声明权限推断权限状态证据
文件系统 READ WRITE ✓ 一致 Session directory, image output, font access
网络访问 READ READ ✓ 一致 Xiaohongshu creator API, HN script fetch
命令执行 NONE WRITE ✗ 越权 scripts/xhs_ai_publisher.js:114 - execSync uv run HN_SCRIPT
1 高危 104 项发现
📡
高危 IP 地址 硬编码 IP 地址
122.0.0.0
scripts/xhs_ai_publisher.js:835
🔗
中危 外部 URL 外部 URL
https://creator.xiaohongshu.com
SKILL.md:166
🔗
中危 外部 URL 外部 URL
https://www.xiaohongshu.com
references/setup.md:89
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/@babel/code-frame/-/code-frame-7.29.0.tgz
scripts/package-lock.json:13
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz
scripts/package-lock.json:26
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/@puppeteer/browsers/-/browsers-2.13.0.tgz
scripts/package-lock.json:35
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz
scripts/package-lock.json:56
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/@types/node/-/node-25.5.2.tgz
scripts/package-lock.json:62
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/@types/yauzl/-/yauzl-2.10.3.tgz
scripts/package-lock.json:71
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/agent-base/-/agent-base-7.1.4.tgz
scripts/package-lock.json:81
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/ansi-regex/-/ansi-regex-5.0.1.tgz
scripts/package-lock.json:90
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz
scripts/package-lock.json:98
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/argparse/-/argparse-2.0.1.tgz
scripts/package-lock.json:113
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/ast-types/-/ast-types-0.13.4.tgz
scripts/package-lock.json:118
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/b4a/-/b4a-1.8.0.tgz
scripts/package-lock.json:130
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/bare-events/-/bare-events-2.8.2.tgz
scripts/package-lock.json:144
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/bare-fs/-/bare-fs-4.6.0.tgz
scripts/package-lock.json:158
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/bare-os/-/bare-os-3.8.7.tgz
scripts/package-lock.json:182
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/bare-path/-/bare-path-3.0.0.tgz
scripts/package-lock.json:191
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/bare-stream/-/bare-stream-2.12.0.tgz
scripts/package-lock.json:200
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/bare-url/-/bare-url-2.4.0.tgz
scripts/package-lock.json:226
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/basic-ftp/-/basic-ftp-5.2.0.tgz
scripts/package-lock.json:235
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/buffer-crc32/-/buffer-crc32-0.2.13.tgz
scripts/package-lock.json:244
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/callsites/-/callsites-3.1.0.tgz
scripts/package-lock.json:253
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/chromium-bidi/-/chromium-bidi-14.0.0.tgz
scripts/package-lock.json:262
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/cliui/-/cliui-8.0.1.tgz
scripts/package-lock.json:275
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz
scripts/package-lock.json:288
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz
scripts/package-lock.json:300
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/cosmiconfig/-/cosmiconfig-9.0.1.tgz
scripts/package-lock.json:305
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz
scripts/package-lock.json:330
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/debug/-/debug-4.4.3.tgz
scripts/package-lock.json:339
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/degenerator/-/degenerator-5.0.1.tgz
scripts/package-lock.json:355
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/devtools-protocol/-/devtools-protocol-0.0.1581282.tgz
scripts/package-lock.json:369
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/emoji-regex/-/emoji-regex-8.0.0.tgz
scripts/package-lock.json:375
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/end-of-stream/-/end-of-stream-1.4.5.tgz
scripts/package-lock.json:381
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/env-paths/-/env-paths-2.2.1.tgz
scripts/package-lock.json:390
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/error-ex/-/error-ex-1.3.4.tgz
scripts/package-lock.json:399
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/escalade/-/escalade-3.2.0.tgz
scripts/package-lock.json:407
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/escodegen/-/escodegen-2.1.0.tgz
scripts/package-lock.json:416
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/esprima/-/esprima-4.0.1.tgz
scripts/package-lock.json:436
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/estraverse/-/estraverse-5.3.0.tgz
scripts/package-lock.json:449
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/esutils/-/esutils-2.0.3.tgz
scripts/package-lock.json:457
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/events-universal/-/events-universal-1.0.1.tgz
scripts/package-lock.json:466
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/extract-zip/-/extract-zip-2.0.1.tgz
scripts/package-lock.json:474
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/fast-fifo/-/fast-fifo-1.3.2.tgz
scripts/package-lock.json:494
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/fd-slicer/-/fd-slicer-1.1.0.tgz
scripts/package-lock.json:500
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/get-caller-file/-/get-caller-file-2.0.5.tgz
scripts/package-lock.json:509
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/get-stream/-/get-stream-5.2.0.tgz
scripts/package-lock.json:518
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/get-uri/-/get-uri-6.0.5.tgz
scripts/package-lock.json:532
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz
scripts/package-lock.json:546
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz
scripts/package-lock.json:559
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/import-fresh/-/import-fresh-3.3.1.tgz
scripts/package-lock.json:571
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/ip-address/-/ip-address-10.1.0.tgz
scripts/package-lock.json:586
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/is-arrayish/-/is-arrayish-0.2.1.tgz
scripts/package-lock.json:594
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz
scripts/package-lock.json:600
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/js-tokens/-/js-tokens-4.0.0.tgz
scripts/package-lock.json:609
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/js-yaml/-/js-yaml-4.1.1.tgz
scripts/package-lock.json:614
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz
scripts/package-lock.json:626
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/lines-and-columns/-/lines-and-columns-1.2.4.tgz
scripts/package-lock.json:632
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-7.18.3.tgz
scripts/package-lock.json:638
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/mitt/-/mitt-3.0.1.tgz
scripts/package-lock.json:647
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/ms/-/ms-2.1.3.tgz
scripts/package-lock.json:653
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/netmask/-/netmask-2.0.2.tgz
scripts/package-lock.json:659
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/once/-/once-1.4.0.tgz
scripts/package-lock.json:668
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz
scripts/package-lock.json:677
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/pac-resolver/-/pac-resolver-7.0.1.tgz
scripts/package-lock.json:696
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/parent-module/-/parent-module-1.0.1.tgz
scripts/package-lock.json:709
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/parse-json/-/parse-json-5.2.0.tgz
scripts/package-lock.json:720
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/pend/-/pend-1.2.0.tgz
scripts/package-lock.json:738
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/picocolors/-/picocolors-1.1.1.tgz
scripts/package-lock.json:743
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/progress/-/progress-2.0.3.tgz
scripts/package-lock.json:748
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/proxy-agent/-/proxy-agent-6.5.0.tgz
scripts/package-lock.json:756
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz
scripts/package-lock.json:775
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/pump/-/pump-3.0.4.tgz
scripts/package-lock.json:781
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/puppeteer/-/puppeteer-24.40.0.tgz
scripts/package-lock.json:790
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/puppeteer-core/-/puppeteer-core-24.40.0.tgz
scripts/package-lock.json:811
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/require-directory/-/require-directory-2.1.1.tgz
scripts/package-lock.json:829
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/resolve-from/-/resolve-from-4.0.0.tgz
scripts/package-lock.json:838
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/semver/-/semver-7.7.4.tgz
scripts/package-lock.json:847
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/smart-buffer/-/smart-buffer-4.2.0.tgz
scripts/package-lock.json:858
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/socks/-/socks-2.8.7.tgz
scripts/package-lock.json:868
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz
scripts/package-lock.json:882
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz
scripts/package-lock.json:896
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/streamx/-/streamx-2.25.0.tgz
scripts/package-lock.json:906
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/string-width/-/string-width-4.2.3.tgz
scripts/package-lock.json:917
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/strip-ansi/-/strip-ansi-6.0.1.tgz
scripts/package-lock.json:930
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/tar-fs/-/tar-fs-3.1.2.tgz
scripts/package-lock.json:941
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/tar-stream/-/tar-stream-3.1.8.tgz
scripts/package-lock.json:955
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/teex/-/teex-1.0.1.tgz
scripts/package-lock.json:967
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/text-decoder/-/text-decoder-1.2.7.tgz
scripts/package-lock.json:975
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/tslib/-/tslib-2.8.1.tgz
scripts/package-lock.json:984
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/typed-query-selector/-/typed-query-selector-2.12.1.tgz
scripts/package-lock.json:990
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/undici-types/-/undici-types-7.18.2.tgz
scripts/package-lock.json:996
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz
scripts/package-lock.json:1003
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz
scripts/package-lock.json:1009
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/wrappy/-/wrappy-1.0.2.tgz
scripts/package-lock.json:1025
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/ws/-/ws-8.20.0.tgz
scripts/package-lock.json:1031
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/y18n/-/y18n-5.0.8.tgz
scripts/package-lock.json:1052
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/yargs/-/yargs-17.7.2.tgz
scripts/package-lock.json:1060
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/yargs-parser/-/yargs-parser-21.1.1.tgz
scripts/package-lock.json:1078
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/yauzl/-/yauzl-2.10.0.tgz
scripts/package-lock.json:1087
🔗
中危 外部 URL 外部 URL
https://mirrors.tencent.com/npm/zod/-/zod-3.25.76.tgz
scripts/package-lock.json:1097
🔗
中危 外部 URL 外部 URL
https://creator.xiaohongshu.com/login
scripts/xhs_ai_publisher.js:651
🔗
中危 外部 URL 外部 URL
https://creator.xiaohongshu.com/publish/publish?source=official
scripts/xhs_ai_publisher.js:838

目录结构

6 文件 · 95.1 KB · 2437 行
JSON 2f · 1110L JavaScript 1f · 938L Markdown 3f · 389L
├─ 📁 references
│ ├─ 📝 posting-guide.md Markdown 101L · 3.7 KB
│ └─ 📝 setup.md Markdown 122L · 3.3 KB
├─ 📁 scripts
│ ├─ 📋 package-lock.json JSON 1105L · 39.9 KB
│ ├─ 📋 package.json JSON 5L · 56 B
│ └─ 📜 xhs_ai_publisher.js JavaScript 938L · 42.3 KB
└─ 📝 SKILL.md Markdown 166L · 5.8 KB

依赖分析 1 项

包名版本来源已知漏洞备注
puppeteer ^24.40.0 npm Major version pinned

安全亮点

✓ No credential theft or harvesting detected
✓ No data exfiltration or C2 communication
✓ No base64 obfuscation or eval() patterns
✓ No reverse shell or RCE capabilities
✓ No access to ~/.ssh, ~/.aws, or .env files
✓ Session management uses standard Puppeteer userDataDir pattern
✓ Content safety checks are properly implemented
✓ Font paths are documented and expected for Chinese rendering