Scan Report
20 /100
xhs-publisher
小红书通用自动发帖技能。全流程自动化:AI生成帖子内容 → 生成封面图(6套风格模板)→ Puppeteer自动发布到小红书创作者中心
A legitimate Xiaohongshu auto-posting tool using Puppeteer for browser automation, with a hardcoded placeholder IP and minor doc gaps, but no evidence of malicious behavior.
Safe to install
Approve for use with normal precautions. Replace the hardcoded placeholder IP (122.0.0.0) with a documented test value or constant. Consider documenting the npm install capability in SKILL.md.
Findings 3 items
| Severity | Finding | Location |
|---|---|---|
| Low | Hardcoded placeholder IP address in source Doc Mismatch | scripts/xhs_publisher.js:641 |
| Low | Font download and npm install in setup.md not declared in SKILL.md Doc Mismatch | references/setup.md:1 |
| Low | Tencent npm mirror in package-lock.json Supply Chain | scripts/package-lock.json:13 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | WRITE | WRITE | ✓ Aligned | fs.writeFileSync, fs.readFileSync, fs.mkdirSync — used for session storage and c… |
| Network | READ | READ | ✓ Aligned | Puppeteer navigates to creator.xiaohongshu.com via browser automation — consiste… |
| Shell | NONE | NONE | — | No shell command execution found; no subprocess, execSync, or shell spawning |
| Browser | WRITE | WRITE | ✓ Aligned | Full Puppeteer browser control declared via publishPost/generateCoverImage; all … |
| Environment | NONE | READ | ✓ Aligned | process.env.XHS_PROFILE_DIR and os.homedir() accessed for session paths; no cred… |
| Skill Invoke | NONE | NONE | — | No cross-skill invocation detected |
| Clipboard | NONE | NONE | — | No clipboard access found |
| Database | NONE | NONE | — | No database access |
1 High 103 findings
High IP Address 硬编码 IP 地址
122.0.0.0 scripts/xhs_publisher.js:641 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/@babel/code-frame/-/code-frame-7.29.0.tgz scripts/package-lock.json:13 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz scripts/package-lock.json:26 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/@puppeteer/browsers/-/browsers-2.13.0.tgz scripts/package-lock.json:35 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz scripts/package-lock.json:56 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/@types/node/-/node-25.5.2.tgz scripts/package-lock.json:62 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/@types/yauzl/-/yauzl-2.10.3.tgz scripts/package-lock.json:71 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/agent-base/-/agent-base-7.1.4.tgz scripts/package-lock.json:81 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/ansi-regex/-/ansi-regex-5.0.1.tgz scripts/package-lock.json:90 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz scripts/package-lock.json:98 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/argparse/-/argparse-2.0.1.tgz scripts/package-lock.json:113 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/ast-types/-/ast-types-0.13.4.tgz scripts/package-lock.json:118 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/b4a/-/b4a-1.8.0.tgz scripts/package-lock.json:130 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/bare-events/-/bare-events-2.8.2.tgz scripts/package-lock.json:144 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/bare-fs/-/bare-fs-4.6.0.tgz scripts/package-lock.json:158 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/bare-os/-/bare-os-3.8.7.tgz scripts/package-lock.json:182 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/bare-path/-/bare-path-3.0.0.tgz scripts/package-lock.json:191 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/bare-stream/-/bare-stream-2.12.0.tgz scripts/package-lock.json:200 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/bare-url/-/bare-url-2.4.0.tgz scripts/package-lock.json:226 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/basic-ftp/-/basic-ftp-5.2.0.tgz scripts/package-lock.json:235 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/buffer-crc32/-/buffer-crc32-0.2.13.tgz scripts/package-lock.json:244 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/callsites/-/callsites-3.1.0.tgz scripts/package-lock.json:253 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/chromium-bidi/-/chromium-bidi-14.0.0.tgz scripts/package-lock.json:262 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/cliui/-/cliui-8.0.1.tgz scripts/package-lock.json:275 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/color-convert/-/color-convert-2.0.1.tgz scripts/package-lock.json:288 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/color-name/-/color-name-1.1.4.tgz scripts/package-lock.json:300 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/cosmiconfig/-/cosmiconfig-9.0.1.tgz scripts/package-lock.json:305 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz scripts/package-lock.json:330 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/debug/-/debug-4.4.3.tgz scripts/package-lock.json:339 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/degenerator/-/degenerator-5.0.1.tgz scripts/package-lock.json:355 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/devtools-protocol/-/devtools-protocol-0.0.1581282.tgz scripts/package-lock.json:369 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/emoji-regex/-/emoji-regex-8.0.0.tgz scripts/package-lock.json:375 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/end-of-stream/-/end-of-stream-1.4.5.tgz scripts/package-lock.json:381 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/env-paths/-/env-paths-2.2.1.tgz scripts/package-lock.json:390 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/error-ex/-/error-ex-1.3.4.tgz scripts/package-lock.json:399 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/escalade/-/escalade-3.2.0.tgz scripts/package-lock.json:407 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/escodegen/-/escodegen-2.1.0.tgz scripts/package-lock.json:416 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/esprima/-/esprima-4.0.1.tgz scripts/package-lock.json:436 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/estraverse/-/estraverse-5.3.0.tgz scripts/package-lock.json:449 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/esutils/-/esutils-2.0.3.tgz scripts/package-lock.json:457 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/events-universal/-/events-universal-1.0.1.tgz scripts/package-lock.json:466 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/extract-zip/-/extract-zip-2.0.1.tgz scripts/package-lock.json:474 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/fast-fifo/-/fast-fifo-1.3.2.tgz scripts/package-lock.json:494 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/fd-slicer/-/fd-slicer-1.1.0.tgz scripts/package-lock.json:500 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/get-caller-file/-/get-caller-file-2.0.5.tgz scripts/package-lock.json:509 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/get-stream/-/get-stream-5.2.0.tgz scripts/package-lock.json:518 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/get-uri/-/get-uri-6.0.5.tgz scripts/package-lock.json:532 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz scripts/package-lock.json:546 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz scripts/package-lock.json:559 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/import-fresh/-/import-fresh-3.3.1.tgz scripts/package-lock.json:571 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/ip-address/-/ip-address-10.1.0.tgz scripts/package-lock.json:586 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/is-arrayish/-/is-arrayish-0.2.1.tgz scripts/package-lock.json:594 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz scripts/package-lock.json:600 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/js-tokens/-/js-tokens-4.0.0.tgz scripts/package-lock.json:609 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/js-yaml/-/js-yaml-4.1.1.tgz scripts/package-lock.json:614 Medium External 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 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/lines-and-columns/-/lines-and-columns-1.2.4.tgz scripts/package-lock.json:632 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/lru-cache/-/lru-cache-7.18.3.tgz scripts/package-lock.json:638 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/mitt/-/mitt-3.0.1.tgz scripts/package-lock.json:647 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/ms/-/ms-2.1.3.tgz scripts/package-lock.json:653 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/netmask/-/netmask-2.0.2.tgz scripts/package-lock.json:659 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/once/-/once-1.4.0.tgz scripts/package-lock.json:668 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz scripts/package-lock.json:677 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/pac-resolver/-/pac-resolver-7.0.1.tgz scripts/package-lock.json:696 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/parent-module/-/parent-module-1.0.1.tgz scripts/package-lock.json:709 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/parse-json/-/parse-json-5.2.0.tgz scripts/package-lock.json:720 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/pend/-/pend-1.2.0.tgz scripts/package-lock.json:738 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/picocolors/-/picocolors-1.1.1.tgz scripts/package-lock.json:743 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/progress/-/progress-2.0.3.tgz scripts/package-lock.json:748 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/proxy-agent/-/proxy-agent-6.5.0.tgz scripts/package-lock.json:756 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz scripts/package-lock.json:775 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/pump/-/pump-3.0.4.tgz scripts/package-lock.json:781 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/puppeteer/-/puppeteer-24.40.0.tgz scripts/package-lock.json:790 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/puppeteer-core/-/puppeteer-core-24.40.0.tgz scripts/package-lock.json:811 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/require-directory/-/require-directory-2.1.1.tgz scripts/package-lock.json:829 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/resolve-from/-/resolve-from-4.0.0.tgz scripts/package-lock.json:838 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/semver/-/semver-7.7.4.tgz scripts/package-lock.json:847 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/smart-buffer/-/smart-buffer-4.2.0.tgz scripts/package-lock.json:858 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/socks/-/socks-2.8.7.tgz scripts/package-lock.json:868 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz scripts/package-lock.json:882 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/source-map/-/source-map-0.6.1.tgz scripts/package-lock.json:896 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/streamx/-/streamx-2.25.0.tgz scripts/package-lock.json:906 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/string-width/-/string-width-4.2.3.tgz scripts/package-lock.json:917 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/strip-ansi/-/strip-ansi-6.0.1.tgz scripts/package-lock.json:930 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/tar-fs/-/tar-fs-3.1.2.tgz scripts/package-lock.json:941 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/tar-stream/-/tar-stream-3.1.8.tgz scripts/package-lock.json:955 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/teex/-/teex-1.0.1.tgz scripts/package-lock.json:967 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/text-decoder/-/text-decoder-1.2.7.tgz scripts/package-lock.json:975 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/tslib/-/tslib-2.8.1.tgz scripts/package-lock.json:984 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/typed-query-selector/-/typed-query-selector-2.12.1.tgz scripts/package-lock.json:990 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/undici-types/-/undici-types-7.18.2.tgz scripts/package-lock.json:996 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz scripts/package-lock.json:1003 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz scripts/package-lock.json:1009 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/wrappy/-/wrappy-1.0.2.tgz scripts/package-lock.json:1025 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/ws/-/ws-8.20.0.tgz scripts/package-lock.json:1031 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/y18n/-/y18n-5.0.8.tgz scripts/package-lock.json:1052 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/yargs/-/yargs-17.7.2.tgz scripts/package-lock.json:1060 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/yargs-parser/-/yargs-parser-21.1.1.tgz scripts/package-lock.json:1078 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/yauzl/-/yauzl-2.10.0.tgz scripts/package-lock.json:1087 Medium External URL 外部 URL
https://mirrors.tencent.com/npm/zod/-/zod-3.25.76.tgz scripts/package-lock.json:1097 Medium External URL 外部 URL
https://creator.xiaohongshu.com/login scripts/xhs_publisher.js:510 Medium External URL 外部 URL
https://creator.xiaohongshu.com/publish/publish?source=official scripts/xhs_publisher.js:644 Medium External URL 外部 URL
https://creator.xiaohongshu.com scripts/xhs_publisher.js:660 File Tree
6 files · 82.0 KB · 2186 lines JSON 2f · 1117L
JavaScript 1f · 776L
Markdown 3f · 293L
├─
▾
references
│ ├─
posting-guide.md
Markdown
│ └─
setup.md
Markdown
├─
▾
scripts
│ ├─
package-lock.json
JSON
│ ├─
package.json
JSON
│ └─
xhs_publisher.js
JavaScript
└─
SKILL.md
Markdown
Dependencies 2 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
puppeteer | ^24.40.0 | npm | No | Latest stable; major version pinned but minor not pinned |
ws | 8.20.0 | npm | No | Transitive dependency via puppeteer-core; known CVE-2024-37890 mitigated by version range in lockfile |
Security Positives
✓ Content safety filtering is well-implemented with regex patterns blocking hate speech, incitement, and biased characterizations
✓ Session data stored locally in ~/.openclaw-sessions/xiaohongshu/ with no exfiltration observed
✓ Puppeteer browser automation is a legitimate, widely-used tool appropriate for the stated use case
✓ No credential harvesting or environment variable iteration for sensitive keys detected
✓ No base64-encoded payloads, eval(), or obfuscated code paths
✓ No reverse shell, C2 communication, or data exfiltration endpoints
✓ Hardcoded IP 122.0.0.0 is an unroutable placeholder, not an active threat
✓ Verified login flow uses user-supplied phone + OTP with explicit askCodeFn callback — credentials never stored in code
✓ UserDataDir isolation per session prevents cross-contamination
✓ Screenshot capture on failure is scoped to /tmp and workspace directory only