[Security] CORS Misconfiguration in Local Proxy Enables 1-Click API Key Abuse #1841 漏洞概述 cc-switch 本地代理服务器(默认监听 )存在过度宽松的 CORS 策略( ),允许任意网站向代理发送跨域请求。由于代理会自动注入用户的 AI API 密钥(如 Claude、OpenAI、Gemini 等),恶意网页无需用户确认即可通过“点击一次”利用该密钥发起 API 调用。 根因代码: 受影响的代理路由: (Claude API) (OpenAI API) (OpenAI Responses API) (Gemini API) 和 认证注入机制: 代理根据提供商自动注入 API 密钥,攻击者无需知晓密钥: 检测向量: 未认证的 端点可被任意网站探测代理是否运行: 影响范围 API 密钥滥用:攻击者可无限次调用受害者账户的 AI 服务。 成本放大:受害者承担所有 API 调用费用。 数据泄露:AI 响应可能包含敏感上下文信息。 速率限制耗尽:攻击者可耗尽受害者 API 配额。 跨提供商影响:影响所有配置的提供商(Claude, OpenAI, Gemini, Codex 等)。 额外风险: 1. 端点泄露配置详情(目标端点、失败计数、连接统计)。 2. 代理无速率限制,允许快速自动化请求。 3. 代理无身份验证,任何本地应用或网站均可使用。 修复方案 选项 A — 仅允许 localhost 来源(推荐) 选项 B — 完全移除 CORS(首选) 由于代理仅服务于本地 CLI 工具,CORS 不必要。移除 以阻止所有跨浏览器请求。 选项 C — 添加本地秘密令牌 要求所有代理请求携带 Bearer 令牌(启动时生成并存储在已知位置),防止本地应用外的未授权访问。 概念验证 (POC) 代码 攻击者创建网页静默使用受害者 AI API: 攻击场景: 1. 受害者访问 (1次点击) 2. JavaScript 静默检测 上的 cc-switch 代理 3. JavaScript 通过代理发送 API 请求——代理自动注入受害者 API 密钥 4. AI 响应被外泄到攻击者服务器 5. 无需额外用户交互,无确认对话框 环境信息 OS: macOS (Darwin 25.2.0) cc-switch version: 3.12.3 Default proxy address: CORS policy: 信用 报告者:r00tuser111