安装验证:运行验证通过 (L5) · 验证于 dsh 0.2.1-rc.2 · 验证日期 安装验证详情 →
功能介绍AI
提供可刷新的Cloudflare快速隧道池,让手机通过二维码和嵌入式登录访问dsh网页GUI。
- 提供可刷新的Cloudflare快速隧道池
- 支持通过手机访问dsh网页GUI
- 包含二维码和嵌入式登录功能
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add github:iimaguest/phone-tunnel-pool安装方式: GitHub · 运行验证通过 (L5)
验证与兼容性
按插件版本分组:每张卡是该插件版本实测过的 dsh 版本与安装兼容结论(L5 优先)。只列真测过的组合——未列出 = 未实测,不推定兼容。L1–L3 为插件级静态档(与 dsh 版本无关,各 dsh 行同值):在行内「验证等级」格里与 L4/L5 并列显示、标注「静态」,证据体为插件级单份、随行内「查看检查项与证据」出现,不在各版本重复存储。
External credentials(插件级):未检测到
○ 作者未声明 dsh 版本要求 —— 安装不会因版本被拒。
| 插件版本 \ dsh | dsh 0.2.1-rc.2 当前 | dsh 0.2.1-alpha.4 | dsh 0.2.1-alpha.2 | dsh 0.2.0-rc.2 | dsh 0.1.7-rc.2 |
|---|---|---|---|---|---|
| d1bb0a | ✓ | ✓ | ✓ | ✓ | ✓ |
d1bb0agithub✓ 运行验证通过 112026-10-19
https://github.com/iimaguest/phone-tunnel-pool
✓dsh 0.2.1-rc.2当前2026-10-19L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: github · https://github.com/iimaguest/phone-tunnel-pool(版本未标注)
ID: phone-tunnel-pool@d1bb0a@dsh0.2.1-rc.2 · 档位: l4-sandbox
签发:2026-10-19 · 有效至:2026-10-26
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.1-alpha.42026-10-16L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.4
- • 被测插件工件: github · https://github.com/iimaguest/phone-tunnel-pool(版本未标注)
ID: phone-tunnel-pool@d1bb0a@dsh0.2.1-alpha.4 · 档位: l4-sandbox
签发:2026-10-16 · 有效至:2026-10-23
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.1-alpha.22026-10-10L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.2
- • 被测插件工件: github · https://github.com/iimaguest/phone-tunnel-pool(版本未标注)
ID: phone-tunnel-pool@d1bb0a@dsh0.2.1-alpha.2 · 档位: l4-sandbox
签发:2026-10-10 · 有效至:2026-10-17
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.0-rc.22026-10-08L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.2
- • 被测插件工件: github · https://github.com/iimaguest/phone-tunnel-pool(版本未标注)
ID: phone-tunnel-pool@d1bb0a@dsh0.2.0-rc.2 · 档位: l4-sandbox
签发:2026-10-08 · 有效至:2026-10-15
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.7-rc.22026-09-27L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.2
- • 被测插件工件: github · https://github.com/iimaguest/phone-tunnel-pool(版本未标注)
ID: phone-tunnel-pool@d1bb0a@dsh0.1.7-rc.2 · 档位: l4-sandbox
签发:2026-09-27 · 有效至:2026-10-04
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.1.7-rc.12026-09-23未实测
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.1
- • 被测插件工件: github · https://github.com/iimaguest/phone-tunnel-pool(版本未标注)
ID: phone-tunnel-pool@d1bb0a@dsh0.1.7-rc.1 · 档位: l4-sandbox
签发:2026-09-23 · 有效至:2026-09-30
查看检查项与证据
该档位在这次扫描中未执行。
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.7-alpha.22026-09-23L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.7-alpha.2
- • 被测插件工件: github · https://github.com/iimaguest/phone-tunnel-pool(版本未标注)
ID: phone-tunnel-pool@d1bb0a@dsh0.1.7-alpha.2 · 档位: l4-sandbox
签发:2026-09-23 · 有效至:2026-09-30
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.6-alpha.22026-09-20L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.2
- • 被测插件工件: github · https://github.com/iimaguest/phone-tunnel-pool(版本未标注)
ID: phone-tunnel-pool@d1bb0a@dsh0.1.6-alpha.2 · 档位: l3-fullscan
签发:2026-09-20 · 有效至:2026-09-27
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.6-alpha.12026-09-17L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.1
- • 被测插件工件: github · https://github.com/iimaguest/phone-tunnel-pool(版本未标注)
ID: phone-tunnel-pool@d1bb0a@dsh0.1.6-alpha.1 · 档位: l4-sandbox
签发:2026-09-17 · 有效至:2026-09-24
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.5-rc.22026-09-13L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.5-rc.2
- • 被测插件工件: github · https://github.com/iimaguest/phone-tunnel-pool(版本未标注)
ID: phone-tunnel-pool@d1bb0a@dsh0.1.5-rc.2 · 档位: l4-sandbox
签发:2026-09-13 · 有效至:2026-09-20
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.3-alpha.22026-09-09L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.2
- • 被测插件工件: github · https://github.com/iimaguest/phone-tunnel-pool(版本未标注)
ID: phone-tunnel-pool@d1bb0a@dsh0.1.3-alpha.2 · 档位: l4-sandbox
签发:2026-09-09 · 有效至:2026-09-16
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓版本史前2026-09-30L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: unknown
- • 被测插件工件: github · https://github.com/iimaguest/phone-tunnel-pool(版本未标注)
ID: phone-tunnel-pool@d1bb0a@dshunknown · 档位: l3-fullscan
签发:2026-09-30 · 有效至:2026-10-07
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/phone-tunnel-pool/)``[](https://www.dsh.so/artifact/phone-tunnel-pool/)``[](https://www.dsh.so/artifact/phone-tunnel-pool/)``[](https://www.dsh.so/artifact/phone-tunnel-pool/)``[](https://www.dsh.so/artifact/phone-tunnel-pool/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低;动态审计最高 严重(有结论时以动态为准)→ 总评级 严重。
v0.3.35dsh 清单0.3.35git2026-10-250.3.35版本一致clean · gitvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(12 条)
- 警告childProcess · code-exec
lib/daemon.mjs:162proc = spawn(CLOUDFLARED, tunnelArgs(port), { stdio: ['ignore', 'pipe', 'pipe'], env: CLOUDFLARED_ENV }) - 警告childProcess · code-exec
lib/daemon.mjs:397awake = spawn('/usr/bin/caffeinate', ['-i'], { stdio: 'ignore' }) - 警告childProcess · code-exec
lib/daemon.mjs:406proxy = spawn(process.execPath, [PROXY, '127.0.0.1', PROXY_PORT, '127.0.0.1', TARGET_PORT], { - 警告shellExec · shell
lib/daemon.mjs:379const v = execFileSync(CLOUDFLARED, ['--version'], { encoding: 'utf8' }) - 警告netIp · network
lib/daemon.mjs:143const a = ['tunnel', '--url', 'http://127.0.0.1:' + PROXY_PORT] - 警告netIp · network
lib/daemon.mjs:230return fetch('http://127.0.0.1:' + PROXY_PORT + path, { - 警告childProcess · code-exec
lib/index.js:85const spawn = (argv, env) => subprocess.spawn({ - 警告childProcess · code-exec
lib/index.js:98const h = spawn(['powershell', '-NoProfile', '-Command', - 警告childProcess · code-exec
lib/index.js:106const h = spawn(['/usr/bin/pkill', '-f', pattern], undefined) - 警告netIp · network
lib/index.js:163const u = new URL(conn.authenticatedUrl('http://127.0.0.1:' + port + '/')) - 警告netIp · network
lib/index.js:181const res = await fetch('http://127.0.0.1:' + PROXY_PORT + '/iptunnel/__ctl/launch-token', { - 警告netIp · network
lib/index.js:222await killPattern('cloudflared tunnel --url http://127.0.0.1:' + PROXY_PORT)
展开 4 条审计发现
- critical未鉴权的 /iptunnel/entry 页面内嵌隧道密码(base64)并自动完成登录
cf-auth-proxy.mjs:68/iptunnel/entry 在 PUBLIC 集合中,并在任何 authorized() 检查之前被返回,而页面正文里带着 base64('dsh:'+PASS),也就是完整的 Basic 凭据。任何知道快速隧道主机名的公网客户端(看到、转发、截图或浏览器历史中的地址)只需 GET https://<host>/iptunnel/entry,页面自带脚本随即用该凭据请求 /iptunnel/preauth,拿到 dsh_auth cookie 并跳转 '/',从而直接以已登录身份进入被暴露的 dsh 宿主。这与该文件自称公开路径“只暴露主机名与存活状态、不含密码”的注释直接矛盾。
- low每个已鉴权 HTML 页面都被注入隧道凭据 window.__ptAuth
cf-auth-proxy.mjs长期有效的隧道密码被写入每个被代理 HTML 页面的正文(watchdog 需要它调用 /iptunnel/preauth)。因此源站内任何可执行脚本都能读到它,并会残留在页面源码/缓存中;一旦宿主出现内容注入或恶意页面,就升级为一枚可在任意地点复用的隧道凭据(不同于仅限该浏览器的 dsh_auth cookie)。它也把问题 1 的暴露面复制到了已鉴权路径上。
- low隧道密码用 Math.random() 生成(非密码学安全随机数)
lib/index.js:82用于把守公网隧道的凭据由 V8 的非密码学 Math.random 生成。虽然熵仍约为 144 位、暴力破解不现实,但安全相关密钥不应来自不保证不可预测性的 PRNG;一旦同一进程泄漏其他 Math.random 输出,密码即可被还原。
- low生成二维码时把隧道密码放进 python3 命令行参数
lib/index.js:132密码会出现在短期存在的 python3 进程 argv 中;Linux 下 /proc/<pid>/cmdline 对所有用户可读,因此任何本地用户在生成二维码期间都能读到隧道凭据——这正是 daemon 对 cloudflared 刻意规避的暴露(“密码只经 DSH_PROXY_PASS 环境变量传入,绝不走 argv”,并从 cloudflared 环境中删除)。
隧道代理的公开页面 /iptunnel/entry 在鉴权前就以 base64 内嵌隧道密码,任何知道主机名的人都能直接登录。
口径(2026-10-24):有动态审计结论时以动态结论为准(可能上调也可能下调);无结论时以静态/vet 融合档为准。动态审计永不写豁免表(豁免只能人工三筛手写);模型判错时由人工复核撤回,撤回后档位回到静态/vet。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-10-02 · 活跃度:活跃
• 仓库创建: 2026-08-23
• 星标: ★ 7 · 复刻: 2
• 健康度: 活跃 — 近 30 天有提交
来源
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
