本文目录
先确认公开报告覆盖什么
Sub-Store issue #634 的公开报告把受影响范围写为 Node 后端 2.11.4 至 2.37.1,并描述了过宽的跨来源访问与脚本处理能力组合后的风险。上游随后用提交 038745f 收紧默认 CORS、限制部分 Node 脚本操作并增加拒绝测试,2.38.0 的发布说明明确关闭该 issue。
截至 2026 年 9 月 12 日,Sub-Store 当前稳定版是 2.39.6。本文把 2.38.0 作为上游明确关闭 #634 的最低版本边界,并建议更新到当前稳定版;这不等于 2.38.0 为所有网络暴露增加了认证,也不能据版本号判断设备是否已经受到影响。
Clash Party issue #2134 是一条针对 v2.0.2 环境的用户报告,随后按项目安全报告流程由机器人关闭,贡献者建议更新 Sub-Store。Clash Party 可以独立更新内置后端,所以只看客户端版本无法确定正在运行的 Sub-Store 版本。
v2.0.2 源码把内置 Sub-Store 设为默认启用,但实际状态仍以本机设置和监听结果为准。没有打开过页面、隐藏入口或删除一条订阅,都不等于后端已经停用。
先把事实分开
| 看到的信息 | 能得出的结论 | 不能据此断言 |
|---|---|---|
| Sub-Store 版本为 2.11.4 至 2.37.1 | 落在公开报告范围,应停止暴露并更新 | 设备已经被利用或感染 |
| Clash Party 显示 v2.0.2 | 需要继续核对内置后端 | 所有 v2.0.2 安装使用同一后端版本 |
| Sub-Store 已到 2.38.0 以上 | 包含上游关闭 #634 的缓解 | 任何网络来源都已获得鉴权保护 |
| 没有异常进程或弹窗 | 暂未观察到明显症状 | 旧后端继续运行没有风险 |
- 不受信任的网页浏览器中打开的外部页面发起跨来源请求
- 浏览器来源检查旧版 Node 后端默认允许过宽的来源
- 本机 Sub-Store APIClash Party 启动的独立前后端服务
- 脚本处理能力订阅处理上下文可能执行脚本操作
2.38.0 收紧了默认来源范围并限制部分脚本操作,但 CORS 不是 API 鉴权;还应关闭局域网访问,无法确认版本时直接停用 Sub-Store。
核对前先停用 Sub-Store
如果 Clash Party 正在运行 Sub-Store,但你还不知道后端版本,先关闭不受信任的网页,不要寻找或运行公开利用代码。打开 Clash Party 的“设置 > Sub-Store”,关闭“启用 Sub-Store”;官方源码显示,这个动作会停止内置前端和后端服务。
同时确认“允许局域网访问”保持关闭。该选项打开时服务会绑定 0.0.0.0,局域网设备可直接访问;关闭时使用 127.0.0.1。公开报告包含浏览器页面访问回环地址的路径,所以只关局域网访问不能代替更新,但它能避免继续扩大网络暴露面。
Sub-Store 是订阅编辑、转换和管理工具,不是 Mihomo 核心本身。停用后,已经导入 Clash Party 的 Profile、策略组、系统代理和 TUN 通常仍可继续工作,只是不能继续使用 Sub-Store 页面处理订阅。
先形成可回退的安全状态
关闭不受信任的网页
保留本文和项目官方页面即可,不测试任何来源不明的请求、脚本或所谓检测站。
关闭启用开关
进入设置的 Sub-Store 区域,关闭“启用 Sub-Store”,等待前后端停止。
关闭局域网访问
确认“允许局域网访问”未开启,后续重新启用时也只绑定 127.0.0.1。
重启并验证普通代理
重新打开 Clash Party,使用现有 Profile 完成一次真实 HTTPS 请求,确认停用 Sub-Store 没有破坏日常代理。
记录实际后端版本与监听地址
准备更新时,先在“设置 > Sub-Store”确认使用的是内置后端还是自定义后端。内置模式由 Clash Party 启动本地 bundle;自定义模式会停止内置后端并连接用户填写的 URL,应用内更新不能替代外部部署自己的升级、监听限制和鉴权。
使用内置后端时,确保不受信任的网页已经关闭,再临时启用 Sub-Store,并保持该设置区的“允许局域网访问”关闭。进入 Sub-Store 页面使用“在浏览器中打开”,以界面给出的实际地址为准,不要假设每台设备都固定使用同一个端口。
Clash Party v2.0.2 源码显示,后端默认从 127.0.0.1:38324 开始寻找可用端口,若端口已占用会继续递增。打开后端根地址时,Sub-Store 的响应会在 data.version 中给出实际版本;只记录版本和地址,不提交脚本参数或进行利用测试。
若版本落在 2.11.4 至 2.37.1,应立即更新;若版本低于 2.11.4,虽不在该报告范围,也已经明显落后,应更新到当前稳定版;若页面打不开或版本无法确认,则回到停用状态,不要把“未知”当成安全。
先区分后端模式
| 当前模式 | 谁负责运行 | 正确处理 |
|---|---|---|
| 内置后端 | Clash Party 本机服务 | 应用内更新、关闭 Sub-Store Allow LAN、核对本机版本 |
| 自定义后端 | 用户填写的外部部署 | 在部署端独立更新、限制监听并配置鉴权 |
| 不使用 Sub-Store | 不应有前后端服务 | 关闭启用开关并在重启后验证停止 |
后端显示 2.11.4 至 2.37.1
属于公开报告范围,保持仅限本机并立即执行上游更新。
后端显示 2.38.0 或以上
已越过 #634 的官方关闭下限,继续核对当前稳定版和监听范围。
只知道 Clash Party v2.0.2
信息不足;同一客户端版本可能运行不同的 Sub-Store 后端。
浏览器地址不是 127.0.0.1
先停用服务,关闭 Allow LAN,再排查配置或其他监听者。
页面或版本响应无法打开
不要反复暴露服务,保持停用并从官方更新路径重试。
在 Clash Party 内更新 Sub-Store
下面的步骤只适用于 Clash Party 内置后端。Sub-Store 页面右上角有云形“检查更新”按钮;v2.0.2 源码显示,该入口会从 sub-store-org/Sub-Store 官方 Release 的 latest 下载后端与前端文件,完成后重启两项服务。
点击更新后等待完成提示,不在中途退出客户端,也不要同时手工覆盖应用目录中的 bundle。最低目标是 2.38.0,当前目标是 2026 年 9 月 11 日发布的 2.39.6;若未来已有更新稳定版,应以官方 Releases 为准。
更新 Mihomo 内核、刷新订阅或重新安装相同的 Clash Party 客户端,都不能替代核对 Sub-Store 后端。它是独立下载和运行的组件,必须在自己的页面完成更新并读取自己的版本号。
只走应用内的官方更新路径
保持本机监听
确认 Allow LAN 关闭,并关闭其他不受信任的浏览器页面。
点击检查更新
在 Sub-Store 页面点击右上云形按钮,等待下载、重启和完成提示。
重新读取版本
再次使用页面给出的实际后端地址,确认 data.version 不低于 2.38.0。
更新失败就停用
若下载、重启或版本核对失败,关闭“启用 Sub-Store”,不要降级或从第三方复制文件。
更新后验证版本、监听与停用开关
更新提示成功只是第一层验证。重启 Clash Party 后,再从 Sub-Store 页面读取实际后端地址和 data.version,确认版本没有回到旧值;同时确认地址使用 127.0.0.1,而不是局域网地址或 0.0.0.0。
然后关闭“启用 Sub-Store”,确认前端和后端页面不再可用,再用现有 Profile 完成一次真实 HTTPS 请求。这样可以同时证明停用开关确实停止独立服务,也证明普通代理并不依赖 Sub-Store 持续运行。
安全核验清单
- 实际 Sub-Store 后端版本不低于 2.38.0,并已与当前官方稳定版核对
- 重启 Clash Party 后版本仍保持新值
- “允许局域网访问”关闭,界面给出的后端主机为 127.0.0.1
- 关闭“启用 Sub-Store”后,前端与后端服务不再可访问
- Sub-Store 停用时,现有 Profile、系统代理或 TUN 仍能完成真实请求
- 使用自定义后端时,已经在外部部署端单独核对版本、监听与鉴权
- 没有运行 PoC、未知脚本或第三方安全检测页面
怀疑受影响时先保留证据
版本落在报告范围不等于已经被利用。只有出现未知进程、异常网络连接、系统安全软件告警、配置或凭据被异常改动等证据时,才应把事件升级为可能的设备入侵;此时更新只能封堵后续入口,不能删除已经存在的程序或恢复泄露的凭据。
先停用 Sub-Store 并断开设备网络,记录 Clash Party 与 Sub-Store 版本、监听地址、告警时间和可疑现象。不要为了“清理”而立即删除日志、配置或未知文件,它们可能是判断影响范围的重要证据。
使用操作系统或企业已批准的安全工具做完整扫描。若订阅 URL、节点凭据、WebDAV、GitHub Token 或其他密钥曾进入该设备,应从一台可信设备让旧凭据失效并重新签发;分享日志前先制作脱敏副本。完整性无法确认时,从官方来源重新安装系统或客户端,并只恢复确认干净的配置。
事件响应最低动作
- 已停用 Sub-Store 并限制受影响设备继续联网
- 已记录版本、监听地址、时间线、告警与可疑连接
- 原始日志和配置已保留,公开副本已脱敏
- 已用可信的系统安全工具完成扫描
- 可能暴露的订阅 Token 与云端凭据已在可信设备上轮换
- 不能确认完整性时,没有把旧应用目录直接复制回新环境
更新失败时停用,不恢复旧后端
如果 2.38.0 以上版本导致某项订阅转换或脚本不再工作,不要为了恢复功能降级到 2.37.1 或更早版本。先关闭 Sub-Store,继续使用已经验证可用的 Clash Party Profile;需要恢复订阅时,从可信服务商重新取得原始链接或导入升级前的干净备份。
只有在新版本、Allow LAN 关闭且监听限于 127.0.0.1 的条件下,才重新开启 Sub-Store 复测。若某个第三方脚本仍必须依赖被限制的旧行为,应停止使用该脚本并联系维护者更新,而不是放宽整个本地 API。
可回退但不回到风险版本
关闭独立服务
停用 Sub-Store,确认前后端已经停止。
恢复可用 Profile
使用应用内仍可工作的配置,或导入升级前保存的干净副本。
验证日常代理
固定一条已知可用节点,分别验证系统代理或 TUN 与真实请求。
等待兼容修复
关注 Sub-Store 和相关脚本的官方更新,不恢复 2.37.1 或更早的 bundle。
以后按组件版本复核,不看客户端名称猜测
这次风险的核心对象是 Clash Party 启动的 Sub-Store Node 后端,不是 Mihomo 内核,也不是所有名为 Clash 的客户端。后续复核应同时记录 Clash Party 版本、Sub-Store data.version、Allow LAN 状态和实际监听地址。
官方 2.38.0 发布关闭了 #634,2.39.6 是本次检查时的当前稳定版;Clash Party #2134 仍只是用户报告。若上游以后发布新的安全公告、鉴权机制或 Clash Party 整合版本,应以新的官方 Release、提交和说明更新结论。
长期维护记录
| 记录项 | 为什么需要 | 何时复核 |
|---|---|---|
| Sub-Store data.version | 判断独立后端是否达到修复下限 | 每次应用内更新后 |
| Allow LAN 与监听地址 | 确认 API 没有扩大到局域网 | 网络或设置变化后 |
| Clash Party 版本 | 理解界面和更新路径 | 客户端升级后 |
| 官方 Release 与安全说明 | 避免把用户报告写成官方结论 | 看到新版本或新告警时 |
