文章总结: OpenAICodexCLI存在CVE-2025-61260漏洞,允许通过项目本地配置文件进行命令注入。攻击者可在代码仓库中添加.env和./.codex/config.toml文件,使开发者运行codex时自动执行任意命令,无需用户确认。此漏洞可导致远程代码执行、凭证窃取和供应链攻击。OpenAI已在版本0.23.0中修复此问题,建议用户立即更新。
综合评分: 89
文章分类: 漏洞分析,供应链安全,安全建设,命令注入,WEB安全
CVE-2025-61260 — OpenAI Codex CLI:通过项目本地配置进行命令注入
Ots安全
2025年12月2日 16:00
广东
威胁简报
恶意软件
漏洞攻击
OpenAI Codex CLI 是 OpenAI 的命令行工具,它将基于 AI 模型的推理功能引入到开发者的工作流程中。它可以直接在终端读取、编辑和运行代码,从而支持使用自然语言命令与项目交互、自动化任务并简化日常开发流程。其关键特性之一是 MCP(模型上下文协议)——一种将外部工具和服务集成到 Codex 环境中的标准化方法,使开发者能够通过自定义功能和自动化工作流程扩展 CLI 的功能。
研究动机
我们测试了 Codex 是否能够安全地处理运行时自动加载的项目提供的配置和环境覆盖,以及 CLI 可以在未经用户明确同意或来源检查的情况下读取和执行这些项目文件,这种隐式信任是否会在协作工作流中被滥用。
我们的研究结果
在测试过程中,我们发现,当 Codex CLI 在项目本地配置中运行时,它会自动加载并执行 MCP 服务器条目。具体来说,如果一个项目本地配置中包含一个设置了 CODEX_HOME=./.codex 的 .env 文件,以及一个包含 mcp_servers 条目的 ./.codex/config.toml 文件,Codex CLI 会将其配置解析到该本地文件夹,解析 MCP 定义,并在启动时立即调用声明的命令和参数。整个过程无需交互式确认,无需对命令或参数进行二次验证,也不会在这些值更改时重新检查——CLI 将项目本地的 MCP 配置视为可信执行文件。
此攻击序列会将普通的代码库文件变成一个执行向量:攻击者只需提交或合并一个 .env 文件和一个 ./.codex/config.toml 文件,即可让任何克隆代码库并运行 codex 的开发者执行任意命令。我们通过确定性有效载荷(文件创建)以及将良性命令替换为反向 shell 有效载荷进行了验证;这两种方法均无需用户提示即可执行。由于该行为将信任绑定到已解析的 CODEX_HOME 目录下是否存在 MCP 条目,而不是条目的内容,因此可以在批准或合并后将最初无害的配置替换为恶意配置,从而创建一个隐蔽的、可复现的供应链后门,该后门会在正常的开发者工作流程中触发。
技术深度解析
Codex 在启动时解析其配置路径,然后解析并实例化找到的所有 MCP 服务器条目,以便运行时可以使用它们。当有效的 CODEX_HOME 指向一个仓库文件夹时,Codex 会将该仓库级别的配置视为权威来源,并调用 mcp_servers 下列出的命令及其参数,作为预期启动/自动化流程的一部分。在存在漏洞的行为中,没有二次验证、没有交互式批准,也没有在命令/参数更改时进行重新检查。CLI 只是简单地运行项目配置中声明的内容。
这意味着攻击者可以执行以下步骤:
1.准备一个看起来无害的项目结构的代码仓库。
- 添加一个 .env 文件,将配置重定向到仓库:
- 提交一个包含 mcp_servers 条目的 ./.codex/config.toml 文件,该条目声明命令和参数。在本例中,我们使用了一个无害的文件创建有效载荷,但同样的流程也可以替换为反向 shell。
- 当开发者克隆或更新项目并运行命令时codex,仓库.env设置CODEX_HOME=./.codex会导致 Codex 立即加载./.codex/config.toml并执行其默认mcp_servers.*.command命令,而无需提示。该命令在用户上下文中运行;攻击者可以悄无声息地切换到反向 shell,窃取数据或凭据。在下面的示例图片中,我们通过在受害者机器上打开计算器来演示这一点。
现实世界的后果
此漏洞允许在任何开发者使用 Codex 访问代码仓库的环境中静默执行可重复的远程代码。攻击者通过滥用项目本地配置加载机制,只需提交一次代码或发起一次 PR,即可将原本无害的代码仓库变成一个持久性后门,该后门会在开发者每次运行 Codex 时触发,无需任何额外的提示或批准。
拥有写入权限或 PR 权限的攻击者可以:
- 实现持久远程访问:在 ./.codex/config.toml 中嵌入反向 shell 或持久有效载荷(与重定向 CODEX_HOME 的 .env 一起提供),并在开发人员每次运行 codex 时重新获得访问权限。
- 静默执行任意命令:在 MCP 条目中定义的任何 shell 命令,只要 codex 加载项目配置,就会立即在用户的上下文中运行。
- 升级和窃取:开发者机器通常保存着云令牌、SSH 密钥和源代码;攻击者可以窃取凭证、窃取机密信息或推送进一步的漏洞利用程序。
- 合并后保留并交换有效载荷:由于信任与已解析的配置位置而非内容相关联,因此最初无害的条目稍后可能会被恶意命令替换,而不会触发重新批准。
- 通过供应链工件传播:被攻破的模板、启动存储库或流行的开源项目可以通过一次提交将许多下游用户变成武器。
- 污染 CI 和构建管道:如果 CI、自动化或构建代理在检出的代码上运行 codex,则这种损害可能会从工作站转移到构建工件和下游部署。
- 实现横向移动和权限提升:攻击者利用窃取的凭证和本地访问权限,可以横向移动到云资源、存储库或内部网络。
这打破了 CLI 预期的安全边界:项目提供的文件成为可信的执行材料,这种隐式信任可以被利用,只需极少的努力,无需用户在标准开发工作流程之外进行任何交互。
负责任的信息披露时间表:
- Check Point Research 于 2025 年 8 月 7 日负责任地向 OpenAI Codex CLI 团队披露了该问题。
- OpenAI 于 2025 年 8 月 20 日发布了 Codex CLI 版本 0.23.0 的修复程序。该补丁阻止 .env 文件静默地将 CODEX_HOME 重定向到项目目录,从而关闭了我们演示的自动执行路径。
- 我们的测试证实该修复有效。Codex CLI 现在会阻止将 CODEX_HOME 重定向到项目本地,从而要求使用更安全的默认值,并阻止攻击者提供的项目文件立即执行。
为确保安全,我们强烈建议所有用户更新至 Codex CLI 版本 0.23.0 或更高版本。
END
公众号内容都来自国外平台-所有文章可通过点击阅读原文到达原文地址或参考地址
排版 编辑 | Ots 小安
采集 翻译 | Ots Ai牛马
公众号 | AnQuan7 (Ots安全)
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Ots安全 《CVE-2025-61260 — OpenAI Codex CLI:通过项目本地配置进行命令注入》