- 用户本地文件和 Codex 工作区。
- Codex renderer 中可访问的会话数据。
- 用户主题图片。
- macOS 上的 Codex 应用生命周期。
- 恶意网页向 localhost 发请求。
- DNS rebinding 绕过“只在本机”的直觉边界。
- 恶意主题内容变成 CSS/JS 注入。
- 路径穿越或符号链接逃逸主题目录。
- 任意本地进程连接已开启的 CDP 端口。
- 不受控的进程终止导致 Codex 数据丢失。
- 只监听
127.0.0.1,使用随机 Web 端口。 - 每次进程启动生成 256 位令牌;API 需要自定义请求头。
- 校验
Host、Origin与Sec-Fetch-Site。 - 严格 CSP;不加载远程脚本、字体和图片。
- JSON body 和图片大小有上限。
- Schema 只允许十六进制颜色、范围内数字和枚举值。
- 使用内部生成的主题 ID;路径由 Helper 构造。
- 主题目录写入采用临时目录 + rename。
- CDP discovery 只接受
app://页面和ws://127.0.0.1。 - 只调用预定义的注入表达式,不提供通用 evaluate API。
- 使用 AppleScript 请求 Codex 正常退出,不发送 SIGKILL。
CDP 没有为同一台机器上的其他进程提供应用级鉴权。一旦 Codex 以 remote debugging 模式运行,同一用户权限下的恶意进程仍可能发现并连接端口。随机端口降低偶然发现,不等于消除风险。
因此第一阶段遵循:
- 用户主动启动工具时才开启 CDP。
- 不安装常驻服务。
- UI 持续显示“调试会话已开启”。
- 用户可暂停主题并正常重启 Codex 回到非调试模式。