安全决策报告

bt-download

BT下载工具存在未声明的外部网络访问行为(bt_get_trackers静默从GitHub获取数据),但功能本身符合工具声明用途,风险可控。

安装决策优先 来源: ClawHub 扫描时间: 2026/4/6
文件 2
IOC 1
越权项 1
发现 4
最直接的威胁证据

为什么得出这个结论

1/4 个维度触发
阻止
声明与实际能力

发现 1 项声明之外的能力或越权行为。

复核
隐藏执行与外联

提取到 1 个一般风险产物,需要结合上下文判断。

通过
攻击链与高危发现

没有形成明确的恶意路径。

复核
依赖与供应链卫生

发现 2 项需要关注的依赖或供应链线索。

风险分是怎么被拉高的

未声明的网络访问 +25

bt_get_trackers通过curl访问GitHub获取tracker列表,SKILL.md未声明此外部网络行为

外部URL内容获取 +15

无条件curl远程URL,存在供应链风险(URL内容可能被篡改)

shell执行能力 +10

使用child_process.exec执行系统命令,能力符合下载工具定位但属高权限操作

sudo权限要求 +5

bt_install_aria2需要sudo安装系统包,未在参数说明中明确

最关键的证据

中危 文档欺骗

未声明的外部网络访问

bt_get_trackers函数通过curl从GitHub获取tracker列表,但SKILL.md的功能说明中完全未提及此网络行为。这是典型的文档-行为差异,属于阴影功能。

plugin.ts:133
在SKILL.md的bt_get_trackers描述中明确说明需要网络访问权限,声明获取来源URL
低危 供应链

外部URL内容获取无完整性校验

curl获取的tracker列表内容直接使用,无哈希校验或签名验证。若攻击者篡改上游仓库,可注入恶意tracker

plugin.ts:133
考虑内嵌一份tracker列表作为fallback,或添加内容完整性校验
低危 权限提升

sudo安装系统包未在文档声明

bt_install_aria2使用'sudo apt-get install'安装aria2,需要提升权限,但SKILL.md参数说明中未提及此权限要求

plugin.ts:101
在工具描述中明确说明需要sudo权限,或改用非root安装方式
提示 敏感访问

环境变量读取下载目录

代码读取DOWNLOAD_DIR环境变量作为默认下载目录,这是合法的配置能力

plugin.ts:213
无需修改,属于正常的配置机制

声明能力 vs 实际能力

文件系统 通过
声明 READ
推断 READ
plugin.ts:217 readFile读取.torrent文件
网络访问 阻止
声明 NONE
推断 READ
plugin.ts:133 curl访问github.com/ngosang/trackerslist
命令执行 通过
声明 WRITE
推断 WRITE
plugin.ts 多处child_process.exec调用
环境变量 通过
声明 NONE
推断 READ
plugin.ts:213 process.env.DOWNLOAD_DIR读取

可疑产物与外联

中危 外部 URL
https://aria2.github.io

SKILL.md:4

依赖与供应链

包名版本来源漏洞备注
node-fetch * dynamic import 按需导入用于RPC调用
aria2c * system package 系统依赖,通过apt安装

文件构成

2 个文件 · 591 行
TypeScript 1 个文件 · 456 行Markdown 1 个文件 · 135 行
需关注文件 · 2
plugin.ts TypeScript · 456 行
未声明的外部网络访问 · 外部URL内容获取无完整性校验 · sudo安装系统包未在文档声明 · 环境变量读取下载目录
SKILL.md Markdown · 135 行
https://aria2.github.io

安全亮点

使用aria2 RPC模式而非直接操作下载文件,隔离良好
RPC服务仅监听localhost:6800,不对外暴露
日志写入/tmp/aria2-rpc.log,不包含敏感信息
工具功能定位清晰,符合BT下载助手声明
fallback tracker列表硬编码,防止网络失败完全阻塞