先确认你是否装过可疑工具

如果你最近装过 `codexui-android`、`@friuns/codexui`,或者在 Android 上用过叫 `OpenClaw Codex Claude AI Agent`、`Codex` 的非官方远程 Codex 工具,先按这篇处理。

这类风险的重点不是 Codex CLI 本身报错,而是本地 Codex 登录文件可能被读取。没有装过这些工具时,不要为了安全感直接删除所有 Codex 配置。

重点检查codexui-android / @friuns/codexui
重点文件~/.codex/auth.json
先不要做把整个项目或 .codex 目录无差别删除

检查全局 npm 是否装过

先看全局 npm 包里有没有这两个名字。这个命令只查询,不会修改本机。看到 `empty` 或 `-- (empty)` 通常表示全局没有装。

PowerShell
npm ls -g codexui-android @friuns/codexui

检查当前项目依赖

如果你是在某个项目里装过远程 UI,继续检查项目依赖文件。重点看 `package.json`、`pnpm-lock.yaml`、`package-lock.json` 或 `yarn.lock` 里是否出现可疑包名。

只要锁文件里出现过,就按已经暴露处理。不要只看 GitHub 仓库源码是否干净,公开源码干净不代表发布到 npm 的包也干净。

PowerShell
Select-String -Path package.json,pnpm-lock.yaml,package-lock.json,yarn.lock -Pattern "codexui-android|@friuns/codexui" -ErrorAction SilentlyContinue

不要打印 auth.json 内容

`auth.json` 里可能有 Codex 登录 token。现在只确认文件是否存在,不要 `cat`、不要截图、不要贴到聊天记录里。

Windows 上如果你设置过 `CODEX_HOME`,也要检查那个目录下的 `auth.json`。

PowerShell
Test-Path "$env:USERPROFILE\.codex\auth.json"
if ($env:CODEX_HOME) { Test-Path "$env:CODEX_HOME\auth.json" }

先卸载可疑包

确认装过后,先卸载可疑全局包。卸载之后不要立刻重新登录 Codex,先处理本地旧会话。

如果你是在项目里安装的,用项目自己的包管理器删除依赖;本站仓库用 pnpm,但你的项目以自己的锁文件为准。

PowerShell
npm uninstall -g codexui-android @friuns/codexui

退出 Codex 本地登录

Codex CLI 自带 `logout` 命令,用它先移除本机保存的登录凭据。然后再确认当前终端已经没有登录状态。

这一步处理的是本机登录文件。它不等于已经撤销了可能泄露出去的 refresh token,所以后面还要做账号侧处理。

PowerShell
codex logout
codex login status

账号侧按泄露处理

如果可疑包运行过,并且本机存在 `~/.codex/auth.json`,把这次当作 Codex 登录凭据已经泄露处理。

打开 OpenAI / ChatGPT 账号的安全、登录设备、已授权应用或会话管理页面,撤销可疑会话,退出其它设备后重新登录。团队账号还要通知管理员检查使用量、账单和异常项目访问。

  • 个人账号:退出其它会话后重新登录 Codex。
  • 团队账号:让管理员检查最近的 Codex、API、项目访问和账单使用量。
  • 公司电脑:把事件告诉安全或 IT,不要只在本机删文件。
  • 不确定是否运行过:按运行过处理,token 风险不能靠猜。

重新登录 Codex 验证

处理完可疑包和账号侧会话后,再重新登录 Codex。成功标准是 `codex login status` 显示当前账号正常,并且一个最小请求能返回。

如果登录失败,先按 Codex 登录问题排查,不要重新安装可疑远程 UI。

PowerShell
codex login
codex login status
codex exec "Reply with OK only."

检查项目里还有没有残留

最后再查一次当前项目,确认依赖文件里没有可疑包名。已经提交到仓库的依赖变更也要回滚或提交修复,不要只改本机 `node_modules`。

PowerShell
Select-String -Path package.json,pnpm-lock.yaml,package-lock.json,yarn.lock -Pattern "codexui-android|@friuns/codexui" -ErrorAction SilentlyContinue

处理完后确认三件事

收尾时只看三个结果,不需要继续猜。当前机器查不到可疑包,Codex 已经重新登录,项目依赖文件里也没有残留包名,这次处理才算完成。

后面再装远程 UI、移动端壳或浏览器面板时,先确认它是不是官方工具、是否需要读取 `~/.codex`,以及 npm 包和公开仓库是否一致。

  • 全局 npm 和当前项目都查不到 `codexui-android` / `@friuns/codexui`。
  • `codex login status` 显示的是重新登录后的当前账号。
  • `codex exec "Reply with OK only."` 能正常返回。

参考来源

Legitimate-Looking Codex Remote UI Secretly Steals Your AI TokensAikido SecurityAI Developer Supply Chain: OpenAI Codex Token TheftCloud Security AllianceAI Credential Theft via npm Supply Chain MalwareCloud Security AllianceCodex CLIOpenAI 官方文档

相关文章

Codex CLI 实用配置指南:先把这 6 件事配好智能编程 / 约 16 分钟Codex CLI Unknown parameter: service_tier 怎么解决错误日志 / 约 13 分钟为什么 AI Agent 写代码必须有 AGENTS.md / CLAUDE.md智能编程 / 约 9 分钟AI Coding 工具真正改变的不是写代码,而是验证代码智能编程 / 约 8 分钟AI Coding 的下一步:从 prompt 技巧到工程约束智能编程 / 约 8 分钟