ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

CC Switch v3.19.0 版本深度解读:安全加固、代理图片上下文修复与用量统计升级

CC Switch v3.19.0 版本深度解读:安全加固、代理图片上下文修复与用量统计升级 CC Switch v3.19.0 版本深度解读安全加固、代理图片上下文修复与用量统计升级【免费下载链接】cc-switchA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build Hermes Agent. Only official website: ccswitch.io项目地址: https://gitcode.com/GitHub_Trending/cc/cc-switch本篇基于 CC Switchcc-switch官方发布说明 v3.19.0 日文版 编写。v3.19.0 的主轴是「更安心地用起来」集中式的 9 项安全加固Skill 安装、ccswitch://导入确认、SQL 备份导入、通用配置合并、终端启动、代理层最关键的图片上下文溢出修复以及用量统计的三项实质增强models.dev 自动价格同步、Grok 官方 OAuth 模式用量入库、SuperGrok 订阅配额展示。读完后你可以掌握如何评估本次升级对既有配置的影响、哪些操作必须手动执行Gemini 密钥轮换、MCP 导入项核查、以及各功能背后的源码实现位置。发布概览发布日期2026-07-30规模38 commits | 132 个文件变更 | 14,926 / -1,415 行数据库迁移本版本不含 schema 迁移版本仍为 v16升级即用无需等待数据重建。两大主线安全侧对应 PR #5811 及后续单独修复GitHub 仓库安装 Skill 时堵住 zip-slip 与路径穿越并给归档加上限关闭 Gemini 通用配置的密钥泄漏路径并自动清理SQL 备份导入改为在 SQLite authorizer 下执行通用配置合并不再污染全局原型外部终端启动改用 POSIX 单引号转义ccswitch://确认对话框完整显示载荷并标记风险值用量脚本默认以禁用状态导入。代理侧工具结果中的图片不再被序列化为工具文本而是由各协议桥恢复为原生媒体发送——终结了「113 KB 的一张截图吃掉 10 万 token2〜3 张就让 Codex 会话被 400 卡死」的问题issue #4465、#5663。利用指南相关文档索引本版本的新功能集中在用量面板与ccswitch://深链接导入两处配套阅读用量统计用户手册docs/user-manual/ja/下 4-proxy 章节——可确认用量仪表盘的数据源与聚合方式深链接导入ccswitch://用户手册 5-faq 章节——解释确认对话框各字段与usageEnabled等参数的默认值本版本起用量脚本默认以禁用状态导入文档已同步修正安全文档 SECURITY.md本版本重新整理了威胁模型与报告范围——哪些输入不被信任、欢迎报告哪类问题一目了然路由指南中日英三语《在 Claude Code 中使用 GPT 模型》claude-codex-routing-guide-ja.md、《在 Codex 中使用 Claude 模型》codex-claude-routing-guide-ja.md。官方渠道声明CC Switch 是完全免费开源的桌面应用不向用户收费。请仅从官方网站 ccswitch.io纯文本域名非链接、官方源码仓库与官方 Releases 下载。任何索要付款、充值或索要凭证的「CC Switch」站点与客户端均为假冒遇到支付诱导请立即停止操作并通过官方 Issues 报告。新增功能1. models.dev 自动价格同步用量面板价格区新增「models.dev 自动价格同步」卡片默认关闭需手动开启。开启时需阅读确认说明——CC Switch 会在启动时6 小时内最多 1 次从 models.dev 更新所选模型的价格且同名模型的内置价格与手动价格都会被覆盖。「选择模型」对话框可搜索/过滤 models.dev 完整目录还提供「自动纳入常用模型」选项覆盖 Claude、GPT、Gemini、Grok、DeepSeek、Qwen、MiMo、LongCat、Kimi、MiniMax、GLM 各家最近发布的模型每家族最多 6 个可单独排除卡片显示上次同步时间与错误支持「立即同步」、打开/重载本地价格文件。源码层面前端同步逻辑在 modelsDevAutoSync.ts其中MODELS_DEV_STARTUP_SYNC_INTERVAL_MS 6 * 60 * 60 * 1000正是「6 小时至多 1 次」的实现——syncModelsDevPricingOnStartup对同一渲染进程只做一次去重且拉取失败时只记录错误、绝不阻塞启动目录抓取与条目筛选在 modelsDevPricing.tsfetchModelsDevPricing/resolveModelsDevSelection/toModelPricing。本地价格文件的持久化本版本起手动改价与删除价格会记录到数据库旁的人类可编辑文件~/.cc-switch/model-pricing.json每次启动时重放——重建数据库不再丢失手动价格被删除的内置价格会以 tombstone 形式记录、不再被重新 seed。注意该文件初始为空有意不从既有价格表回溯写出否则内置价格也会变成 override 条目堵死未来内置价格修正。升级前做的价格变更仍只在数据库里重新保存一次即可进入文件。同步真正改变价格时只会重算从未算出过成本为零或缺失的历史用量行已有成本的行保持原值。models.dev 的列表中还会剔除非文本模型与已弃用模型语音/图像/视频/embedding 等。2. Grok 官方模式用量终于进入仪表盘Grok CLI 以官方 OAuth 登录时无法走本地代理——Grok 把空配置当作模式切换信号CC Switch 无处可指——因此这部分消耗此前在用量仪表盘完全不可见。现在随常规会话日志同步从~/.grok/sessions含归档会话的updates.jsonl中按turn_completed事件粒度导入每轮用量后端实现见 session_usage_grokbuild.rs成本优先取 CLI 自报的精确值缺失时回落到本地价格内置价格表新增grok-4.5-build每 100 万 token 输入 $2 / 输出 $6 / 缓存读取 $0.30导入行以上游轮次 ID 为键回滚会话不会重复计费确认窗口加入最近代理活动检查「路由 官方」混用时不会双重计费仪表盘新增行显示为 provider 名「Grok Build (Session)」App 过滤器与数据源明细带专属图标同步新增四语言支持。3. SuperGrok 订阅配额上卡片分类为「官方」的 Grok Build provider其卡片直接展示 SuperGrok 订阅用量——与 Claude Code / Codex / Gemini 官方订阅的 footer 并列。实现路径CC Switch 读取 Grok CLI 自身的 OAuth 凭证~/.grok/auth.json查询 grok.com 计费 endpoint 获取配额窗口使用率与重置时间重置间隔可判定时显示「周」或「月」否则归入新设的「Credits」分组托盘用量摘要中以c组显示。网络瞬时失败时保留上次值并重试footer 不置空token 过期时提示重新grok login。Claude Code、Claude Desktop、Codex 托管的 xAI OAuthSuperGrokprovider 自动获得同样配额显示数据取自该 provider 绑定的账号用量脚本入口随之隐藏。注意「官方」判定当前仅依据category字段不做配置内容推断。4. Claude Opus 5 内置价格claude-opus-5加入内置价格表每 100 万 token 输入 $5 / 输出 $25、缓存读取 $0.50 / 缓存写入 $6.25用量不再显示为 $0。采用「不存在才插入」策略已编辑的价格不受影响Opus 5 的 fast 模式因独立计费刻意未入表。5. 预设目录更新A6API同一模型多上游、自动选择最优路径的聚合平台加入 8 个应用的赞助预设PackyCode 预设对应备份 endpoint 的 5 种预设Claude Code / Claude Desktop / Codex / Gemini CLI / Grok Build各新增 3 个备份地址可从地址管理器与测速中选择AICoding 合作伙伴预设回归 7 个应用赞助排序与 README 重新对齐。变更预设默认模型升级Claude Opus 5、GPT-5.6 Sol、Gemini 3.6 Flash内置预设默认模型全面换代claude-opus-5取代claude-opus-4-8覆盖 3 种命名形态、gpt-5.6-sol取代gpt-5.5与裸gpt-5.6、gemini-3.6-flash取代gemini-3.5-flash。所有镜像位置同步更新——通用/NewAPI 默认值、Codex 自定义config.toml模板、推荐列表、表单占位符、四语言文案。gemini-3.6-flash价格同步登记每 100 万 token $1.50 / $7.50、缓存读取 $0.15。仍固定在gemini-3.1-pro-preview的 Code0 与 Qiniu Gemini 预设也统一到 3.6 Flash——这是有意的档位调整3.6 没有 Pro 版3.5 Pro 继续仅限伙伴测试。默认值只影响新建 provider已保存的 provider 保持创建时的模型。Claude Desktop 的 opus 路由现值前进到claude-opus-5claude-opus-4-8移入兼容别名槽位既有配置照常解析。应用内更新改走 ccswitch.io 镜像更新器现在优先查询https://dl.ccswitch.io/latest.jsonrelease manifest 的 Cloudflare R2 镜像GitHub Releases 作为回落。更新检查与下载不再依赖 GitHub 可达性。要点镜像 manifest 指向同一 bucket 的各平台下载minisign 签名不变。签名保证的是文件内容而非 URL——所有产物仍对内置公钥做验证镜像本身永远不被信任分发由 release 门控的同步工作流负责只有当 tag 确为 GitHub 的releases/latest时才替换路由 manifest镜像不会把用户回退到旧版本。镜像地址在应用配置中登记见 tauri.conf.json。注意升级注意一节更新器端点列表内置于应用二进制现有安装需升级到含本变更的版本后才开始走镜像。Codex 用量导入fork 会话加速Codex 用量统计的导入与重建不再按每个 fork 点重复读取同一父 rollout。父~/.codex/sessions/*.jsonl只解析一次生成内存中的 token 时间线供所有 fork 出的子会话共享各子会话的截断位置用内存过滤处理。缓存以文件同一性戳更新时间、大小外加 Unix 下 device/inode、Windows 下卷序列号 文件 ID校验——追加、轮转、替换的父文件不会返回旧数据而是被重读。提速幅度取决于 fork 密度fork 密集的历史大幅减少重复解析fork 稀少的历史几乎无变化。任何情况下导入结果字节级一致PR #5626。工具栏应用切换改为纯图标切换按钮不再绘制文字标签——受管应用增至 8 个后标签几乎总被溢出检测折叠。移除了 ResizeObserver 自动紧凑机制改为恒显图标应用名保留在 hover tooltip屏幕阅读器经aria-label照常可达。赞助商域名与介绍链接更新多个赞助商迁移域名预设地址、备份 endpoint、介绍链接、README 行同步PackyCode →www.packyapi.ai、RightCode →www.rightapi.ai、ClaudeAPI →www.apito.ai、APINebula →apinebula.ai、AICodeMirror →.ai、AICoding →.inc、AIGoCode →.app并删除 2 个已失效的备份 endpoint。已创建 provider 保持数据库中保存的旧地址——想迁移需手动改地址或从新预设重建。修复1. 代理图片读取不再撑爆上下文本版本最重要的代理修复问题客户端通过工具调用读图Codex 的view_image、返回图片的 MCP 工具时协议转换会把图片块整体序列化为工具消息文本上游把 base64 当纯文本计 token——约 9,000 倍膨胀113 KB 的 PNG 折算 10 万 prompt token。Codex 每轮全量重放历史2〜3 张截图就足以把会话推出上下文窗口、被 400 反复卡死#4465、#5663。修复代理把媒体载荷从工具结果中取出按各桥的原生格式重发——图片覆盖所有桥文件与音频在对应协议支持处生效桥媒体处理Claude→Chat、Codex Responses→Chat两条 Chat 桥搬运图片/文件/音频工具消息留短 marker媒体作为合成用户消息紧跟工具批次之后Claude→Responses恢复为原生input_imageCodex / GrokBuild→Anthropic重建标准 Anthropic 图片块Claude→GeminiGemini 3 用多模态functionResponse.parts旧模型用inlineData仅接受内联 base64 图片检测覆盖类型化 Responses 块、Anthropicsource块、MCPdatamimeType结果、完整图片 data URL并可穿透数组与嵌套content包装含 JSON 编码的工具输出。仅当判定输出含媒体时其中残留的 data URL 与裸 base64 才折叠为占位符——裸 base64 本身绝不会触发媒体判定普通工具输出原样通过。不含媒体的工具结果在所有桥上字节级不变不影响 prompt 缓存前缀。发出的媒体块刻意不加cache_control标记避免被 GLM、Qwen 等严格上游拒绝。Kimi K3 端到端实测同一重放轮稳定在约 12k 输入 token、缓存命中率 99%——此前每轮重放要背负 85k 的 base64 文本。实现集中在 tool_media.rs工具输出媒体规划、marker 常量如[cc-switch: tool result media moved to the following user message]与 media_sanitizer.rs。2. 「不支持图片回落」也能看见工具结果里的图片该设置在 provider 为纯文本或上游拒图时把图片块替换为占位 marker。此前只能看见结构化块看不见已扁平化为 base64 文本的工具结果图片——纯文本上游下直接失败且无法恢复。媒体清理器现在在各路径对称地检测并剥离工具输出内的媒体「发送前剥离」与「拒绝后重试」两条路径都能救活这类轮次。由于检测深入到工具结果内部回归测试同时固定了响应式重试仍只对真正的模态拒绝触发——上下文超长 400 不会被误判为图片拒绝而重试media_sanitizer.rs中对「仅支持文本」自证性错误短语的识别即服务于该判定。3. Grok Build 成本回填不再过高回填例程此前只把 Codex 与 Gemini 视为「上报输入 token 已含缓存读取」的 providerGrok Build 同属此类——被回填的 Grok Build 行把输入按全量计并重复计了缓存读取。含缓存的 provider 集合现在单点定义路由记录器、成本计算器、回填例程共享三者不再可能口径不一致。旧回填已修正的行保持原值——回填只处理成本为零的行。4. 手动编辑的配置不再导致崩溃或吞编辑~/.codex/config.toml中mcp_servers存在但不是表如mcp_servers x时MCP 同步曾在切换中途 panic——且发生在数据库与 live 配置双写之后留下半应用状态。现在非表值告警并规范化为空表Codex 与 GrokBuild 写入侧同修内联表形式合法 TOML的镜像问题——MCP 删除静默失效而 UI 报成功、base_url编辑写入 Codex 根本不读的层级——一并修复opencode.json中根节点、provider段、mcp段为数组/标量时不再 panic此类文件以错误拒绝而非重建用户的model、theme设置不会被清掉PR #5811。5. 代理转换能扛住畸形上游响应Anthropic SSE 流中非对象的message/content_block、缓冲响应体顶层为 JSON 数组或标量有网关无视stream: true会返回这种——此前会撞上 panic 的下标赋值。现在流以干净的失败事件收尾。畸形content_block头部会恢复为文本块——仅净化为空对象虽然止住了 panic但会让后续内容全部静默丢弃、模型看起来什么都不说损坏头部后的 diff 通常完好常见情形下内容能通替换发生时记录一条警告PR #5811。6. OpenClaw 的 Kimi For Coding 地址修正OpenClaw 预设此前指向通用平台 endpointhttps://api.kimi.com/v1而 Kimi For Coding 订阅用的不是它coding 套餐 key 无法使用。地址改为https://api.kimi.com/coding/v1表单占位符与默认值同步。从旧预设创建的 provider 需手动改成新地址。安全加固9 项其中 2 项需要你操作1. Gemini 通用配置不再泄密升级后自动清理需操作此前 Gemini 通用配置抽取器只从共享 snippet 剥掉GEMINI_API_KEY与GOOGLE_GEMINI_BASE_URL其余env项原样拷贝——而GOOGLE_API_KEY正是 Gemini 的一等凭证某账号的 key 会连同其他疑似凭证项深度合并进所有使用通用配置的 Gemini provider并被送往对方的 base URL可能是第三方中转。现在抽取器跳过一切匹配凭证模式的 key与 Claude 抽取器共用同一组 matcher前端 snippet 校验同步收紧手动编辑也推不回去。由于 Gemini snippet 一旦存在就不会再被抽取升级后首次启动执行一次性清理从 snippet、各已合并 provider 以及~/.gemini/.env中移除已泄漏的凭证——按 key 名与值完全匹配provider 自身同名不同值的 key 不受牵连env 文件的格式与注释保留。审计明细写入settings表的gemini_common_config_scrub_audit_v1记录被删 key 名与受影响 provider id绝不含值实现见 provider/mod.rsPR #5811。凡经共享 Gemini snippet 过的 key 一律视为已泄漏请轮换后重新填写。2. Skill 仓库安装加固路径穿越与归档上限从 GitHub 仓库安装/浏览 Skill 时此前可能写入目标目录之外归档条目未规范化即拼接目标路径含..的 ZIP 可逃出解压目录zip-slip仓库坐标从未校验../../../releases/download/v1/evil这类分支名可把下载重定向到任意 release 资产——而 Skill 仓库可由不可信的ccswitch://深链添加且默认启用打开 Skills 面板就会触发下载。从备份恢复、同步快照、「从应用导入」的 Skilldirectory值同样未经校验卸载可能对受管目录之外执行remove_dir_all。现在所有写入点校验目录名仓库 owner/名/分支在唯一下载汇聚点白名单化解压设硬上限——10,000 条目、写入 512 MB、下载 128 MB、符号链接目标 4 KB、拒绝自引用链接。新错误消息四语言支持PR #5811。3. 深链导入确认对话框完整展示、标记风险ccswitch://的 MCP 导入确认对话框此前只渲染可被截断的单行Command:args、url、env一律不显示——链接里写command: sh加args: [-c, curl …|sh]再加LD_PRELOAD环境变量屏幕上只看到无害的sh一点「导入」就写入各应用的 live MCP 文件。现在命令、各参数、URL、环境变量逐行渲染折叠而非截断没有看不见的被砍内容env 值中 key 名含 TOKEN / KEY / SECRET / PASSWORD 的做前缀 星号掩码高亮并汇总进警告块的值带内联执行标志的 shell 解释器bash -lc、cmd /C、PowerShell-Command缩写等组合、改变进程加载行为的环境变量LD_*、DYLD_*、NODE_OPTIONS、PYTHONPATH、PATH、代理变量等、指向回环/内网/云元数据的 endpoint标记仅为提醒不拦截导入——本地 Ollama endpoint 是完全正常的用法。Provider 确认对话框同步处理「将立即写入指定全部应用」的警告改为无条件展示取消了由链接字段控制显隐的机制。风险判定的前端实现在 deeplinkRisk.ts其文件头注释明确了设计边界所有判定只用于 UI 提示、不参与拦截决策深链携带自定义 endpoint 与 env 是第三方供应商的正常配置能力真正的缺口是用户点「导入」时看不见自己在同意什么env 劫持模式、内联命令标志按形态而非字面量枚举以及「只做字面量匹配、不做 DNS 解析」的私网地址判定均在源注释中有详细理由。4. 深链用量脚本默认禁用看完代码再用经深链导入的用量查询脚本是每次查用量都会执行的 JavaScript此前可能在从未看过代码的情况下被启用——后端把「带代码」当作「同意执行」确认对话框只显示启用/禁用徽章脚本本体从不展示。现在脚本默认禁用仅当链接显式带usageEnabledtrue才请求启用确认对话框以可滚动、完全折行的代码块展示解码后的脚本全文并警告启用即执行解码失败回退显示原始载荷恶意脚本无法伪装成「无脚本」。脚本代码仍按惯例保存在 provider 中确认后可在应用内手动启用。5. URL-safe Base64 曾让确认对话框整片空白上面两项修的是「显示不全」这一项修的是「有时什么都不显示」。后端接受 4 种 Base64 变体含 RFC 4648 §5 的 URL-safe 字母表前端atob只认标准字母表且解不开时不报错、原样返回输入——同一载荷后端解码成功并导入前端拿到的却是一团解不开的字符用量脚本与系统提示显示为不透明 Base64最坏的是 MCP 配置JSON.parse失败被组件吞掉对话框渲染「0 个服务器」与空列表后端照常把真实条目写入 live MCP 文件。只需把载荷里的一个/换成_就触发。前端解码器现在先归一化 URL-safe 字母表再解码确认对话框永远与导入内容一致。共享解码器首次附带单元测试含前提自检确认样例确实落入 URL-safe 分支、并非两种编码恰好相同实现见 base64.ts。本缺陷影响 v3.8.0 及之后的所有版本。若曾用ccswitch://链接导入过 MCP 服务器建议核查一次见下方「升级注意」。6. SQL 导入拒绝触碰目标库之外的语句数据库备份导入此前只校验文件头注释随后把全文直接交给execute_batch——精心构造的备份可用ATTACH DATABASE在用户可写的任意位置创建 SQLite 文件且副作用先于导入自身校验发生导入整体失败文件也已落地。WebDAV / S3 同步快照走同一代码路径。现在外部批次执行期间安装 SQLite authorizer结束即移除不影响应用自身的 schema 维护ATTACH/DETACH、VACUUM、虚拟表创建如 csvfile 这类文件后端模块可任意路径读写以及 SQLite 报告为未知的一切动作一律拒绝——未来新语句默认失败。PRAGMA 仅放行导出器实际写入的foreign_keys与user_version两个。7. 通用配置 snippet 的原型污染通用配置 snippet 的套用/移除/比对三个遍历此前都会顺着__proto__走进全局Object.prototype。JSON.parse({__proto__:{…}})产生的是自身的可枚举属性合并即把攻击者指定值写进全局原型——而settings表在同步时按表整体被远端覆盖恶意 WebDAV / S3 快照落地后打开一次 provider 表单就会触发合并。三个遍历现在一律跳过__proto__、constructor、prototype「通用配置是否已应用」的比对同时要求是自身属性顺带修复了{__proto__:{}}此前被判定为任意配置子集的可观察怪象。8. 终端启动的目录名命令注入从外部终端恢复会话时cd行此前用双引号包裹工作目录、只转义反斜杠与双引号——双引号内 shell 照样展开$(…)、反引号、$VAR该值又是 CLI 会话历史里记录的真实项目路径macOS 允许目录名合法包含这些字符。给文件夹起这样的名字点一下「恢复」就会在你的终端里执行嵌入的命令且不需要任何被篡改的组件。三个拼装 shell 行的启动器——Terminal.app、iTerm、kitty——改用 POSIX 单引号转义任何内容都不再被展开为穿过 Terminal/iTerm 所需的 AppleScript 引号层同样安全Ghostty、WezTerm/Kaku、Alacritty 本来就传独立参数天然安全。9. GrokBuild 凭证解析不再替换或内联环境密钥GrokBuild 凭证提取此前在配置的env_key变量未设置时回落到进程级XAI_API_KEY——被静默换成别的账号的 key再发往配置指定的任意 base URL。现在凭证只来自显式内联api_key或env_key精确指名name的环境变量深链导入不再把环境变量解析成明文api_key仅含env_key名字的链接被拒绝并提示手动添加若直接接受请求时会在受害者环境里解析出 key 并发往链接声明的地址。附带修复base URL 解析与凭证解析解耦——此前凭证缺失会连带 base URL 变空macOSGUI 进程不继承 shell 环境下 UI 显示地址与实际使用地址不一致用量脚本的{{baseUrl}}展开为空PR #5811。文档更新《在 Claude Code 中使用 GPT 模型》指南补全英文/日文版此前仅中文的本地路由指南完整移植为英文与日文端到端覆盖两条连接路径——第三方 OpenAI Responses 网关API Key与用 ChatGPT Plus/Pro 订阅走 Codex 设备码 OAuth 登录的路径。两份路由指南同时改为以「用什么模型」而非「哪个客户端对」命名的标题并把全部互链含 v3.18.0 三语 release notes指向读者语言的版本用户手册深链usageEnabled默认值更正三语手册此前写usageEnabled默认true实际默认是false与导入器一致。手册已注明正确默认值及两个推论——导入前确认对话框完整展示脚本代码未显式usageEnabledtrue时脚本以禁用状态导入、事后可在应用内启用SECURITY.md威胁模型与报告范围新增双语威胁模型与明确的 in-scope / out-of-scope 列表见 SECURITY.md。报告按「这个输入由谁控制」而非「值最终到达哪个 API」分类内置 WebView 渲染器声明为受信任组件附 4 个可独立验证的事实及其前提失效条件深链载荷、WebDAV/S3 恢复数据、导入文件、上游 API 响应、本地代理的入站请求均列为不可信输入欢迎报告。升级注意本版本无数据库迁移v3.19.0 不含 schema 迁移版本保持 v16升级即用。Gemini 密钥的一次性清理务必阅读升级后首次启动在常规配置抽取之前执行一次性 Gemini 通用配置清理。此后部分 Gemini provider 可能提示 API Key 缺失。条目按凭证型 key 名 值完全匹配删除通常删掉的是经共享 snippet 漏入的其他 provider 凭证该 provider 自身原值在泄漏发生时即被覆盖、无法恢复——但多个 Gemini provider 间有意共用的同值 key 也会被一并删除。无论哪种情况请先轮换再重新输入。凡经共享 Gemini snippet 过的 key 一律视为已泄漏。被删 key 名与受影响 provider id绝不含值记录在settings表的gemini_common_config_scrub_audit_v1可据此逐一确定哪些 provider 需要重填 key。用深链导入过 MCP建议核查一次务必阅读本版本之前ccswitch://的 MCP 导入确认对话框无法显示将被写入的内容参数与环境变量一律不渲染command: sh配args: [-c, …]只显示无害的shURL-safe Base64 载荷下整个列表显示「0 个服务器」——而两种情形后端都照常写入各应用 live MCP 文件。这两个缺陷影响v3.8.0 起的所有版本本版本一并修复。利用需要你自己打开攻击者提供的链接并点「导入」多数用户不受影响。若确曾打开过不完全信任来源的ccswitch://MCP 导入链接请到 MCP 面板逐条核对或直接检查~/.claude.json的mcpServersCodex 为~/.codex/config.toml的mcp_servers确认没有陌生条目——MCP 服务器会在 CLI 下次启动时作为子进程执行。深链用量脚本默认禁用含用量查询脚本的深链在链接未显式带usageEnabledtrue时以禁用状态导入。依赖自动启用的链接如部分合作伙伴的一键配置链接仍会导入脚本但用量查询不生效——请确认代码后从 provider 编辑器手动启用。应用内手动设置的用量脚本不受影响。新默认模型只影响新建 provider已保存 provider 保持创建时的模型 ID用新模型需手动编辑。Claude Desktop 的 opus 路由现值前进到claude-opus-5claude-opus-4-8移入兼容别名槽位既有配置照常解析。价格 seed 与本地价格文件新价格行claude-opus-5、gemini-3.6-flash、grok-4.5-build在下次启动时以「不存在才插入」方式添加——seed 绝不覆盖你编辑过的价格。~/.cc-switch/model-pricing.json初始为空只记录本版本起的手动改价与删除——之前的价格变更不会迁移想让它们抗数据库重建请重新保存一次。models.dev 自动同步在你手动开启前一直关闭一旦开启它成为覆盖同名价格无论内置还是手动的唯一路径。GrokBuild 移除隐式环境变量回落依赖隐式XAI_API_KEY环境回落的 GrokBuild provider 需要显式api_key或正确指名的env_key。Grok 官方模式用量有意延迟官方模式 Grok 用量会比实际晚约 10 分钟 一个同步周期出现——事件先休眠等待确认再与代理记录的行核对以防重复计费。路由流量与官方流量在窗口内交替发生时部分官方轮次宁可跳过也不冒重复计费风险。旧成本回填过高估计的 Grok Build 行保持原值——回填只处理成本为零的行。更新镜像从下一版本才生效更新器端点列表内置于二进制现有安装升级前只查 GitHub此后dl.ccswitch.io镜像优先、GitHub 回落。赞助商域名迁移不影响既有 provider已创建 provider 保持数据库中的旧地址。想迁移请手动改地址或从更新后的预设重建。风险提示SuperGrok 配额查询本版本新增卡片上的 SuperGrok 配额显示会读取 Grok CLI 自身的 OAuth 凭证~/.grok/auth.json并查询 grok.com 计费 endpoint——该 endpoint不是公开文档化的接口响应解析基于对现行格式的观察。xAI 若变更接口该功能可能失效届时卡片退化为不显示配额不影响其他功能。CC Switch 不保存、不修改这些凭证。继续有效的提示xAI Grok OAuth 登录复用官方 Grok CLI 的公开 OAuth 客户端标识使用可能导致账号受限或封禁——详见 v3.18.0 release notes 的风险提示一节Codex OAuth 反向代理通过反向代理使用 ChatGPT 订阅的 Codex OAuth 可能违反 OpenAI 服务条款——详见 v3.13.0 release notes 的风险提示一节第三方 provider 路由经 CC Switch 本地代理转换 Codex、Claude Desktop、Grok Build 请求转发至第三方 provider 时计费、合规与数据保留限制因 provider 而异使用前请阅读对应 provider 的服务条款。启用上述功能的用户自行承担相关风险。CC Switch 不对因此产生的账号限制、警告或服务中断承担责任。致谢本版本安全加固的大部分来自外部——一条 PR 与多份安全报告。代码贡献#5811Skill 安装 zip-slip 与仓库坐标遍历、Gemini 通用配置密钥泄漏与一次性清理、GrokBuild 凭证解析、多条 panic 路径修复zayokami——本版本覆盖面最广的单源贡献#5734models.dev 自动价格同步YUZHEthefool#5626Codex fork 会话用量导入加速ayanamislover与 SaladDay 共同署名。安全报告安全加固一节中 4 项修复基于非公开安全报告。23pdsSlowMist 慢雾与zues devil的贡献——深链确认对话框只显示截断的单行Command:本版本影响面最大的一件23pds/SlowMistSQL 备份导入不受约束zues devil外部终端启动的目录名命令注入zues devil 与 23pds 各自独立报告分别指出内置启动器与自定义模板两条路径通用配置 snippet 合并的原型污染23pds/SlowMist。这些报告也是 SECURITY.md 威胁模型与报告范围的直接动因——此前项目只有「如何报告」没有「什么算漏洞」。其余两个深链修复用量脚本默认禁用、URL-safe Base64 旁路是在评审上述修复过程中发现的不在原始报告范围内。问题报告感谢 #4465 与 #5663 中报告代理图片上下文溢出的用户——本版本最重要的代理修复正是基于这些真实场景的复现信息。下载与安装从官方 Releases 下载对应系统的构建或从官网 ccswitch.io 获取本版本起下载经 Cloudflare 边缘节点分发不再依赖 GitHub 可达性。系统要求系统最低版本架构WindowsWindows 10x64 / ARM64macOSmacOS 12 (Monterey)Intel (x64) / Apple Silicon (arm64)Linux见下表x64 / ARM64Windows文件说明CC-Switch-v3.19.0-Windows.msi推荐- 支持自动更新的 MSI 安装器CC-Switch-v3.19.0-Windows-Portable.zip便携版解压即用Windows ARM64 设备请选文件名含arm64的对应产物。macOS文件说明CC-Switch-v3.19.0-macOS.dmg推荐- DMG 安装器拖入 ApplicationsCC-Switch-v3.19.0-macOS.zip解压后拖入 ApplicationsUniversal BinaryCC-Switch-v3.19.0-macOS.tar.gzHomebrew 安装与自动更新用brew install --cask cc-switch brew upgrade --cask cc-switchLinuxLinux 产物同时提供x86_64与ARM64aarch64按uname -m输出选择架构标识CC-Switch-v3.19.0-Linux-x86_64.AppImage/.deb/.rpmCC-Switch-v3.19.0-Linux-arm64.AppImage/.deb/.rpm发行版推荐格式安装方式Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.deb或sudo apt install ./CC-Switch-*.debFedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpm或sudo dnf install ./CC-Switch-*.rpmopenSUSE.rpmsudo zypper install ./CC-Switch-*.rpmArch Linux / Manjaro.AppImage赋予执行权限直接运行或使用 AUR其他/不确定.AppImagechmod x CC-Switch-*.AppImage ./CC-Switch-*.AppImage【免费下载链接】cc-switchA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build Hermes Agent. Only official website: ccswitch.io项目地址: https://gitcode.com/GitHub_Trending/cc/cc-switch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表