Scan Report
22 /100
115-skills
115 网盘智能管理:扫码登录、文件浏览、搜索、转存、离线下载、智能整理
This is a legitimate 115 cloud disk management skill with primarily benign code, but contains minor security concerns: an undeclared Puppeteer browser-automation module, disabled SSL verification in HTTP client, and hard-coded test IPs in User-Agent strings.
Safe to install
Review the unused auth-puppeteer.js module before production use, remove or document the rejectUnauthorized:false setting in lib/auth-web.js, and replace hard-coded IPs in User-Agent strings with actual version identifiers. Overall the code performs its stated 115 cloud management functions without evidence of credential theft or data exfiltration.
Findings 5 items
| Severity | Finding | Location |
|---|---|---|
| Medium | Undeclared Puppeteer headless browser module Doc Mismatch | lib/auth-puppeteer.js:15 |
| Low | Unpinned dependency versions in package.json Supply Chain | package.json:29 |
| Low | Disabled TLS certificate verification Sensitive Access | lib/auth-web.js:21 |
| Info | Hard-coded test IP addresses in User-Agent strings Doc Mismatch | lib/auth.js:20 |
| Info | Undeclared filesystem write access Priv Escalation | lib/storage/cookie-store.js:17 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | READ | READ | ✓ Aligned | index.js uses fs via cookie-store.js for storing encrypted cookies at ~/.opencla… |
| Network | NONE | READ | ✗ Violation | All lib/* modules make outbound HTTP requests to 115.com APIs via axios; not dec… |
| Shell | WRITE | NONE | ✓ Aligned | Bash is declared in allowed-tools but no shell commands are executed in the code… |
| Environment | NONE | READ | ✓ Aligned | lib/storage/cookie-store.js reads process.env.HOME to determine storage path |
| Browser | NONE | READ | ✗ Violation | lib/auth-puppeteer.js uses Puppeteer to launch headless Chrome, screenshot pages… |
| Database | NONE | NONE | — | No database access detected |
2 High 14 findings
High IP Address 硬编码 IP 地址
120.0.0.0 lib/auth-puppeteer.js:39 High IP Address 硬编码 IP 地址
23.9.3.2 lib/auth.js:20 Medium External URL 外部 URL
https://115.com/s/SHARE_CODE SKILL.md:148 Medium External URL 外部 URL
https://115.com/s/xxx index.js:207 Medium External URL 外部 URL
https://115.com/ lib/auth-puppeteer.js:42 Medium External URL 外部 URL
https://passport.115.com/qrcode/generate lib/auth-web.js:90 Medium External URL 外部 URL
https://passportapi.115.com lib/auth.js:13 Medium External URL 外部 URL
https://webapi.115.com lib/auth.js:14 Medium External URL 外部 URL
https://my.115.com/?ct=ajax&ac=nav lib/auth.js:250 Medium External URL 外部 URL
https://uplb.115.com lib/files/transfer.js:17 Medium External URL 外部 URL
https://lixian.115.com lib/lixian/download.js:15 Medium External URL 外部 URL
https://115.com/s/abc123 lib/share/transfer.js:23 Medium External URL 外部 URL
https://115.com/s/abc123?password=xyzw lib/share/transfer.js:25 Medium External URL 外部 URL
https://115.com/s/$ lib/share/transfer.js:237 File Tree
28 files · 226.6 KB · 9007 lines JavaScript 26f · 8729L
Markdown 1f · 222L
JSON 1f · 56L
├─
▾
lib
│ ├─
▾
client
│ │ └─
http-client.js
JavaScript
│ ├─
▾
context
│ │ ├─
history-manager.js
JavaScript
│ │ └─
session-context.js
JavaScript
│ ├─
▾
error
│ │ └─
error-handler.js
JavaScript
│ ├─
▾
files
│ │ ├─
batch-operations.js
JavaScript
│ │ ├─
browser.js
JavaScript
│ │ ├─
operations.js
JavaScript
│ │ └─
transfer.js
JavaScript
│ ├─
▾
lixian
│ │ ├─
download.js
JavaScript
│ │ └─
lixian-manager.js
JavaScript
│ ├─
▾
organizer
│ │ ├─
classifier.js
JavaScript
│ │ ├─
clean-advisor.js
JavaScript
│ │ └─
smart-organizer.js
JavaScript
│ ├─
▾
parser
│ │ └─
command-parser.js
JavaScript
│ ├─
▾
recommender
│ │ └─
action-recommender.js
JavaScript
│ ├─
▾
share
│ │ ├─
share-manager.js
JavaScript
│ │ └─
transfer.js
JavaScript
│ ├─
▾
storage
│ │ └─
cookie-store.js
JavaScript
│ ├─
▾
ui
│ │ ├─
progress-display.js
JavaScript
│ │ └─
response-builder.js
JavaScript
│ ├─
▾
utils
│ │ └─
helpers.js
JavaScript
│ ├─
auth-puppeteer.js
JavaScript
│ ├─
auth-web.js
JavaScript
│ ├─
auth.js
JavaScript
│ └─
session.js
JavaScript
├─
index.js
JavaScript
├─
package.json
JSON
└─
SKILL.md
Markdown
Dependencies 5 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
axios | ^1.6.0 | npm | No | Version not pinned; CVE-2023-45857 applies to versions <1.5.0 but ^1.6.0 should be safe |
puppeteer | ^24.39.1 | npm | No | Heavy dependency; version not pinned; present as dead code |
qrcode | ^1.5.3 | npm | No | Version not pinned; used for QR code generation |
qs | ^6.15.0 | npm | No | Version not pinned; used for query string serialization |
form-data | ^4.0.0 | npm | No | Version not pinned; used for multipart form data |
Security Positives
✓ Credential storage uses AES-256-GCM encryption with PBKDF2 key derivation (100,000 iterations, sha256) — strong cryptographic practices
✓ Machine-specific encryption key derived from hostname+platform+arch — credentials are not portable across machines
✓ Cookie file is stored with 0o600 permissions (owner-only read/write) — appropriate file permissions
✓ No evidence of credential exfiltration — credentials stay local and encrypted
✓ No base64-encoded payloads or eval() usage found — clean code execution model
✓ No curl|bash or wget|sh patterns — no remote script execution
✓ No access to ~/.ssh, ~/.aws, .env, or other sensitive credential paths
✓ No hidden instructions in HTML comments or strings
✓ All network requests target legitimate 115.com infrastructure (webapi.115.com, passport.115.com, etc.) — no suspicious external IPs contacted
✓ Disable-model-invocation flag properly set for high-risk operations — appropriate operational safety controls