Back to skill

Security audit

Bilibili All In One

Security checks across malware telemetry and agentic risk

Overview

The skill is a disclosed Bilibili automation tool, but users should treat its optional cookie handling as full account access.

Install only if you are comfortable giving the agent Bilibili session cookies for the features that need login. Prefer a test account, keep persistence off unless necessary, never commit .credentials.json, and delete or rotate cookies after use on shared or synced machines.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (4)

Missing User Warnings

Medium
Confidence
87% confidence
Finding
The skill offers persistence of full Bilibili session cookies to `.credentials.json`, and those cookies are explicitly described elsewhere as equivalent to account-password-level access. Mentioning 0600 permissions helps, but without a prominent warning at the feature description point, users may enable persistence without appreciating the account-takeover risk from local compromise, backups, syncing, or accidental inclusion in repositories.

Credential Access

High
Category
Privilege Escalation
Content
### 凭据无效或过期
现象: Publisher操作返回 `{"success": false, "message": "login required"}`;Downloader返回1080p+清晰度不可用.
原因: `SESSDATA`/`bili_jct` 过期或被B站风控,`buvid3` 缺失导致WBI签名失败.
处理: 浏览器登录B站后重新抓取三个Cookie;优先用小号测试而非主账号;凭据通过环境变量注入,启用 `persist=True` 时确认 `.credentials.json` 权限为0600.
### 412风控拦截
现象: 请求返回412状态码或 `{"code": -509, "message": "请求过于频繁"}`.
原因: 短时间高频请求触发B站反爬,缺少 `buvid3` 或UA指纹异常.
Confidence
90% confidence
Finding
credentials.json

Credential Access

High
Category
Privilege Escalation
Content
### Q1: 哪些功能不需要登录凭据?
热门监控(`get_hot`/`get_trending`/`get_weekly`/`get_rank`)、标准清晰度(360p-1080p)下载、数据追踪(`watch`/`get_stats`/`track`/`compare`)、字幕列表、弹幕获取、播放信息全部使用公共API,无需任何凭据。仅1080p+/4K下载、高清播放直链、投稿发布需要 `SESSDATA`+`bili_jct`.
### Q2: 凭据会被保存到磁盘吗?
默认不会。凭据仅在内存中持有,进程退出即销毁。显式设置 `BILIBILI_PERSIST=1` 环境变量或 `BilibiliAllInOne(persist=True)` 后,凭据会保存到当前目录 `.credentials.json`,文件权限0600(仅属主可读写)。运行时可用 `app.auth.persist = False` 关闭并调用 `app.auth.clear_persisted()` 删除文件.
### Q3: SESSDATA和bili_jct是受限API密钥吗?
不是。它们是B站浏览器完整会话Cookie,等同于账号密码级别权限,可执行登录态下所有操作。务必使用小号测试,不要在共享环境或公共仓库中暴露;启用持久化时确认 `.credentials.json` 已加入 `.gitignore`.
### Q4: batch_download支持多少个视频?
Confidence
97% confidence
Finding
credentials.json

Credential Access

High
Category
Privilege Escalation
Content
### Q2: 凭据会被保存到磁盘吗?
默认不会。凭据仅在内存中持有,进程退出即销毁。显式设置 `BILIBILI_PERSIST=1` 环境变量或 `BilibiliAllInOne(persist=True)` 后,凭据会保存到当前目录 `.credentials.json`,文件权限0600(仅属主可读写)。运行时可用 `app.auth.persist = False` 关闭并调用 `app.auth.clear_persisted()` 删除文件.
### Q3: SESSDATA和bili_jct是受限API密钥吗?
不是。它们是B站浏览器完整会话Cookie,等同于账号密码级别权限,可执行登录态下所有操作。务必使用小号测试,不要在共享环境或公共仓库中暴露;启用持久化时确认 `.credentials.json` 已加入 `.gitignore`.
### Q4: batch_download支持多少个视频?
理论无上限,但B站反爬会限制短时间请求频率。建议单批不超过20个,批量间间隔5-10秒;`watcher.track` 的 `interval` 建议30分钟以上避免触发412.
### Q5: 下载的视频为什么音画分离?
Confidence
98% confidence
Finding
credentials.json

VirusTotal

64/64 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.