OpenAI 公开了 Codex Security CLI 和 TypeScript SDK,帮助团队扫描代码、验证漏洞并在合并前审查变更。开源代码不等于自动获得所有扫描能力,访问授权仍需单独确认。

OpenAI 已悄然发布了 Codex Security 命令行界面和 TypeScript SDK 的源代码。
这个公开软件包 @openai/codex-security 旨在帮助安全和工程团队:
该代码库以 Apache License 2.0 协议发布。
这意味着 CLI 和 SDK 代码是开源的。但这并不意味着整个 Codex Security 服务、其底层模型、每一条受保护的发现结果,或无限的网络访问权限现在都可以免费离线使用。
运行扫描仍然需要 Codex Security 访问权限。OpenAI 还表示,某些全仓库扫描、受保护的发现结果以及高级网络安全请求可能需要通过 网络安全可信访问(Trusted Access for Cyber) 审批。
这一区别非常重要:
开源 CLI 和 SDK
≠
开放权重安全模型
≠
不受限制的云端扫描访问
Codex Security 最初是一个名为 Aardvark 的内部项目。后来它以研究预览版应用安全代理的形式进入 Codex,而新的公开软件包现在允许开发人员将扫描器带入本地终端、内部工具、批量代码库活动、提交前检查和 CI 管道中。
OpenAI 于 2025 年 10 月首次推出 Aardvark,它是一个由 GPT-5 驱动的智能安全研究员。
该原始系统的设计目标是更像人类应用安全研究员,而非传统的特征码扫描器。
它不仅仅是根据已知模式匹配代码,Aardvark 还能:
2026 年 3 月,OpenAI 将 Aardvark 更名为 Codex Security,并将其集成到 Codex 中。
该产品通过 Codex Web 以研究预览版形式向部分 ChatGPT 套餐用户开放,并支持已连接的 GitHub 代码库。
此后的开源发布添加了不同的部署层。
开发人员现在可以安装 CLI 或导入 TypeScript SDK,而托管式 Codex Security 云体验仍独立存在。
公开的 GitHub 代码库包含:
该软件包通过 npm 发布为:
@openai/codex-security
该代码库的 Apache-2.0 许可证通常允许在许可条款范围内使用、修改和再分发。
该
本次发布不提供 GPT-5.6 Sol、Terra 或专用 Codex Security 模型的权重。
默认扫描当前使用:
gpt-5.6-sol
推理强度:xhigh
CLI 通过经过身份验证的访问来调用推理服务。
该仓库还记录了针对所选模型的提供方选项(如 OpenRouter 和 Fireworks),但 Codex Security 扫描工作流和受保护的网络能力可能仍需要 OpenAI 方面的授权。
安装 npm 包并不等于获得运行每次扫描的许可。
OpenAI 的文档说明:
公开代码使工作流可检查和可扩展。它并不会移除围绕高级网络用途的安全和授权层。
AI 编程代理生成和修改软件的速度,可能超过许多组织的审查速度。
这就造成了安全瓶颈。
一个产品可能只需几天或几小时就能从想法变成已部署的应用,而传统的应用安全审查可能仍依赖:
问题并不仅仅在于开发者缺少漏洞报告。
许多维护者收到的报告已经过多,包括:
Codex Security 的设计围绕相反的目标:更少、更具上下文的发现,并附带证据,帮助审查者决定该修复什么。
OpenAI 将该系统描述为一个多阶段的应用安全工作流。
Codex Security 首先研究仓库,以理解项目中与安全相关的结构。
它试图识别:
结果是针对项目的威胁模型,而不是通用检查清单。
团队可以添加架构文档、安全策略、重点领域和已知攻击向量来改进这一上下文。
该代理在审查相关代码时,会使用威胁模型来判断现实影响。
这使它能够推理那些基于规则的扫描器难以孤立理解的问题。
示例可能包括:
注入访问特权工具。
扫描器可以审查:
在可能的情况下,Codex Security 尝试在隔离环境中验证高信号问题。
验证可以帮助回答:
此步骤旨在减少误报。
它不保证每个发现都已被复现,也不保证完整扫描证明代码仓库是安全的。
扫描的 coverage.json 文件记录覆盖状态是否为:
完整
部分
未知
审查者应在将扫描视为全面审查的证据之前,阅读排除项、延后区域和未决问题。
对于已接受的发现,Codex Security 可以建议一个旨在适应当前系统的补丁。
目标不仅仅是让扫描器安静下来。
一个好的修复应该:
Codex Security 扫描默认仅提供报告。建议的补丁仍应通过正常的代码审查、测试和部署控制流程。
CLI 存储扫描历史并支持发现反馈。
审查者可以将发现标记为误报并记录原因。
后续扫描可以在再次检查当前代码时考虑该解释。
这有助于扫描器适应代码仓库特定事实,而不会永久抑制可能在未来变得易受攻击的代码路径。
OpenAI 已发布其预览部署中的多项采用和质量数据。
这些是公司报告的指标,并非独立基准测试结果。
OpenAI 表示,在一个 30 天期间内,Codex Security:
| 指标 | OpenAI 报告结果 |
|---|---|
| 扫描的提交数 | 超过 120 万 |
| 关键发现数 | 792 |
| 高严重性发现数 | 10,561 |
| 包含关键问题的已扫描提交 | 低于 0.1% |
OpenAI 还报告称,测试版改进:
OpenAI 随后表示,Codex Security 云版已具备:
| 指标 | OpenAI 报告结果 |
|---|---|
| 扫描的代码库数 | 超过 30,000 |
| 扫描的提交数 | 超过 3000 万 |
| 被手动标记为已修复的发现数 | 超过 70,000 |
| 自动发现的 |
已确定固定 | 超过 50 万 |
规模可观,但这些数字不应被解读为与 CodeQL、Semgrep、Snyk 或人工渗透测试之间的受控比较。
这些工具的运行方式不同,可能以不同方式衡量发现、修复和覆盖率。
Codex Security 现可通过多个相关界面使用。
| 界面 | 主要用途 |
|---|---|
| Codex Security 插件 | 在 ChatGPT 桌面应用或 Codex CLI 中进行交互式扫描和修复 |
| 安全工作台 | 查看已保存的扫描、发现、仓库历史、覆盖率和工件 |
| Codex Security CLI | 可重复的本地、终端、预提交、批量及 CI 工作流 |
| TypeScript SDK | 将扫描和生命周期控制嵌入应用程序或开发者工具 |
| Codex Security 云 | 通过 Codex 云扫描已连接的 GitHub 仓库 |
公共 CLI 和 SDK 使用与插件相同的一般扫描器工作流,但插件目录、CLI 包和云端研究预览之间的可用性和功能成熟度可能有所不同。
以下命令遵循 OpenAI 当前官方 CLI 文档。
CLI 需要:
Node.js 22 或更高版本
Python 3.10 或更高版本
Codex Security 访问权限
GitHub 仓库目前提供了更具体的受支持的 Node.js 版本范围,包括最新的 22.x、24.x 和 26.x 版本。
检查您的环境:
node --version
python3 --version
从 npm 安装 Codex Security:
npm install @openai/codex-security
检查已安装的版本:
npx @openai/codex-security --version
列出命令:
npx @openai/codex-security --help
对于本地交互使用,请使用 ChatGPT 账户登录:
npx @openai/codex-security login
对于远程或无头机器:
npx @openai/codex-security login --device-auth
对于 CI 或其他无人值守工作流,请通过环境提供 API 密钥:
export OPENAI_API_KEY=""
请勿将 API 密钥放入源代码管理中。
请使用密钥管理器或 CI 平台的受保护密钥系统。
当已存储的 ChatGPT 登录和 API 密钥都可用时,请明确选择所需方法:
npx @openai/codex-security scan . --auth chatgpt
或:
npx @openai/codex-security scan . --auth api-key
身份验证不会自动授予 Cyber 的 Trusted Access。
OpenAI 建议将结果存储在扫描仓库之外。
报告可能包含:
准备目标和结果目录:
REPOSITORY=/path/to/repository
SCAN_DIR=/path/outside/repository/codex-security-results
如果默认持久状态目录不可写,请选择另一个私有目录:
export CODEX_SECURITY_STATE_DIR=/path/outside/repository/codex-security-state
验证
在开始模型工作之前,先确认本地路径和扫描配置:
npx @openai/codex-security scan "$REPOSITORY" \
--output-dir "$SCAN_DIR" \
--dry-run
试运行不会启动 Codex,也不会加载扫描凭据。
启动标准仓库扫描:
npx @openai/codex-security scan "$REPOSITORY" \
--output-dir "$SCAN_DIR"
在标准输出上请求机器可读的 JSON 格式:
npx @openai/codex-security scan "$REPOSITORY" \
--output-dir "$SCAN_DIR" \
--json
默认情况下,Codex Security 当前使用:
模型:gpt-5.6-sol
推理强度:xhigh
较低成本的配置可以使用其他受支持的模型和强度级别:
npx @openai/codex-security scan "$REPOSITORY" \
--model gpt-5.6-terra \
--effort high
支持的强度设置包括:
minimal(最低)
low(低)
medium(中)
high(高)
xhigh(极高)
较低的强度可能会减少时间和成本,但也可能降低审查的深度。
标准结果目录可能包含:
codex-security-results/
├── scan-manifest.json
├── findings.json
├── coverage.json
├── report.md
├── artifacts/
└── exports/
└── results.sarif
report.md输入一句想法,We0 AI 即可生成展示站、页面与 CMS。发布上线后并帮你获取客户和流量。
用户注册赠送一次完整项目生成
适合先体验一次完整生成流程,快速看到项目初稿。
主要的人类可读报告。
findings.json结构化发现,包括严重性、置信度、受影响位置、证据和修复建议。
coverage.json审查覆盖范围、排除项、延迟处理的工作、未决问题和完整性评估。
scan-manifest.json目标、范围、生产者信息和密封工件引用。
artifacts/漏洞报告、概念验证文件或相关证据(如有)。
SARIF 可被 GitHub Code Scanning 和其他兼容的安全工具使用。
大型单仓库并不一定每次都需全量扫描。
选择特定路径:
npx @openai/codex-security scan "$REPOSITORY" \
--path services/billing \
--path packages/auth
当一次发布影响特定服务或安全边界时,这种方式非常有用。
扫描基础修订版本与 HEAD 之间已提交的更改:
npx @openai/codex-security scan "$REPOSITORY" \
--diff origin/main \
--head HEAD
仓库参数必须指向 Git 工作树根目录,且所需修订版本必须存在于本地。
扫描相对于 HEAD 的已暂存和未暂存更改:
npx @openai/codex-security scan "$REPOSITORY" \
--working-tree \
--base HEAD
在创建拉取请求或提交涉及安全敏感更改之前,这种方式非常有用。
当普通扫描不够充分时,运行更全面的审查:
npx @openai/codex-security scan "$REPOSITORY" \
--mode deep
深度模式耗时更长,可能消耗更多模型资源。
OpenAI 当前文档说明,它支持仓库和路径目标,不支持 diff 或工作树目标。
提供内部文档,帮助代理正确理解系统:
npx
@openai/codex-security scan "$REPOSITORY" \
--knowledge-base /path/to/architecture.md \
--knowledge-base /path/to/security-policies
有用的上下文可以包括:
不要不必要地包含机密信息。
这些文件属于安全敏感的扫描工作流的一部分,应遵循适当的保留和访问控制。
设置以美元计的估计模型成本上限:
npx @openai/codex-security scan "$REPOSITORY" \
--max-cost 5
已在进行中的请求可能在达到上限后仍然完成,因此最终金额可能超过阈值。
当成本限制的扫描停止时,Codex Security 会保留已有的结果。
部分结果不应被视为完整的仓库覆盖范围。
安装随附的 Git 钩子:
npx @openai/codex-security install-hook
该钩子在提交前扫描暂存和未暂存的更改。
OpenAI 表示它会阻止:
它不会替换现有的预提交脚本。
团队应在组织范围内启用该钩子之前,审查它如何与本地性能、开发者访问权限、模型成本以及现有的 lint 或测试钩子交互。
首先验证 GitHub CLI:
gh auth login
启动交互式仓库发现流程:
npx @openai/codex-security bulk-scan
当前的交互式流程排除已归档仓库和分叉,并在扫描前要求确认。
使用准备好的 CSV 清单进行可重复的扫描活动:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4
再次运行相同的命令可以恢复扫描活动,而不会重新扫描已有完整结果工件的仓库。
公共仓库包含 Docker 和 Compose 资源。
在账户访问包含所需镜像和环境的情况下,示例批量命令为:
docker compose run --rm codex-security \
bulk-scan /input/repositories.csv \
--output-dir /output \
--workers 4
OpenAI 建议:
容器化减少了部分主机暴露,但并不会使授权的安全扫描变得零风险。
列出仓库的先前扫描:
npx @openai/codex-security scans list "$REPOSITORY"
检查已保存的扫描:
npx @openai/codex-security scans show SCAN_ID
将已审查的发现标记为误报:
npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
--reason "该路由已检查权限"
使用其原始设置重新运行已保存的扫描
配置:
npx @openai/codex-security scans rerun SCAN_ID
按根本原因匹配发现项:
npx @openai/codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_ID
比较扫描结果:
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_ID
比较可以将发现项分类为:
当后续扫描未覆盖相关区域时,缺失的发现项将保持未知状态。
同一个 npm 包包含一个 ECMAScript 模块 TypeScript SDK。
它需要服务端 Node.js 22 或更高版本,扫描还需要 Python 3.10 或更高版本。
基本集成方式如下:
import { CodexSecurity } from "@openai/codex-security";
const security = new CodexSecurity();
try {
const result = await security.run("/path/to/repository", {
outputDir: "/path/outside/repository/results",
});
console.log(result.reportPath);
console.log(result.coverage.completeness);
console.log(result.findings.findings.length);
} finally {
await security.close();
}
该 SDK 通过以下功能支持长时间运行的工作流:
可复用的应用程序应创建客户端、运行所需扫描,并关闭客户端以释放隔离的运行时环境。
OpenAI 官方 CI 指南演示了使用 GitHub Actions 进行拉取请求扫描。
推荐的模式是:
官方示例锁定了发布时可用的特定包版本。团队应在查看发布说明后有意更新该版本,而不是使用仓库机密自动运行未经审查的安全工具。
核心扫描步骤的简洁表示如下:
- name: 扫描拉取请求更改
env:
OPENAI_API_KEY: ${{ secrets.CODEX_SECURITY_API_KEY }}
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
SCAN_DIR: ${{ runner.temp }}/codex-security-results
run: |
set -euo pipefail
BASE_REVISION="$(git merge-base "$BASE_SHA" "$HEAD_SHA")"
"$CODEX_SECURITY_BIN" scan . \
--diff "$BASE_REVISION" \
--head "$HEAD_SHA" \
--auth api-key \
--output-dir "$SCAN_DIR" \
--json > "$RUNNER_TEMP/codex-security.json"
此摘录假定运行器已安装并验证了 CLI,已检出带有完整历史的拉取请求头,并定义了 CODEX_SECURITY_BIN。
对于生产工作流,请使用完整的官方 CI 指南,包括
固定的操作、SARIF 导出、权限、工件保留以及分支安全检查。
Codex Security 并非要取代所有现有的安全控制措施。
它可以补充以下工具:
其独特优势在于能够跨越仓库结构和系统意图进行上下文推理。
成熟的安全体系可以使用确定性扫描器处理高容量的已知模式,并使用智能体扫描器处理跨文件逻辑、可利用性分析、证据和修复建议。
没有任何扫描器能够证明任意真实世界代码库中不存在所有漏洞。
部分覆盖或未知覆盖使这一局限性更加重要。
某些发现可以在隔离环境中进行测试。
其他发现则依赖于:
没有自动化证明的发现并不自动意味着误报,而经过验证的证明也无法揭示该漏洞的所有变体。
模型可能误解架构、高估影响、提出不完整的补丁或引入回归问题。
安全负责人应审查证据和修复方案。
包源代码是公开的,但默认扫描并非完全不依赖推理访问的本地静态二进制文件。
模型使用可能带来成本、数据处理和授权方面的考量。
结果目录可能比普通构建输出更为敏感。
请勿将详细的发现、概念验证文件或易受攻击的源代码摘录上传到公共工件中。
仅可对您拥有或获得明确授权评估的仓库和系统使用该工具。
OpenAI 的访问控制不能替代法律授权。
Codex Security 最大的概念优势同时也是实际需求。
智能体需要准确的上下文。
仅凭仓库可能无法解释:
上下文不佳可能导致发现质量不佳。
团队应将可编辑的威胁模型和知识库视为一流的安全资产,而非可选的提示装饰。
Codex Security 是 OpenAI 的应用安全智能体,用于发现、验证、确定优先级并帮助修复漏洞。它源于内部项目 Aardvark,现已可用。
通过插件、CLI、TypeScript SDK 以及连接仓库的云端工作流实现。
CLI 和 TypeScript SDK 已在 GitHub 上以 Apache 2.0 许可证公开发布。底层 OpenAI 模型、托管云服务、受保护发现结果以及不受限制的网络安全访问并未作为开源或开放权重组件发布。
任何人都可以访问公共软件包,但运行扫描需要 Codex Security 访问权限。某些全仓库扫描或高级网络能力可能还需要“网络安全可信访问”(Trusted Access for Cyber)。
当前 CLI 文档说明扫描默认使用 GPT-5.6 Sol,推理努力级别为 xhigh。用户可以选择其他受支持的模型和努力级别,公共仓库还记录了选定的第三方供应商配置。
可以。CLI 可以扫描基础修订版与头修订版之间已提交的更改,因此适用于拉取请求工作流。OpenAI 还提供了官方 GitHub Actions 指南,支持 SARIF 导出和工件保留。
它可以提出有边界的修复建议,并帮助验证更改是否解决了一个发现结果。扫描默认仅生成报告,人类应在合并或部署前审查、测试并批准补丁。
该仓库包含用于非交互式批量扫描的 Docker 和 Docker Compose 资源。OpenAI 建议使用私有持久存储、密钥管理、受支持的 Linux 隔离功能,以及可选的 AppArmor 加固。
不能。覆盖范围可能是完整的、部分的或未知的,没有任何自动化扫描器能保证复杂应用程序不存在漏洞。请将 Codex Security 作为更广泛的安全开发计划中的一个环节使用。
产品接口和工作流的起点。
OpenAI 已将 Codex Security CLI 和 TypeScript SDK 开源,为开发者提供了基于 Apache-2.0 的公开基础,用于仓库扫描、变更审查、扫描历史、修复验证、批量活动、SARIF 导出、CI 检查和自定义安全集成。
该智能体不同于基础的模式扫描器,它会构建仓库上下文和威胁模型,在该上下文中搜索漏洞,尽可能验证可疑问题,并针对人工审查提出有边界的修复建议。
该版本并非不受限制的本地安全模型。运行扫描仍需授权的推理访问权限,某些高级网络安全工作流可能需要“网络安全可信访问”。敏感发现和源代码片段也需要谨慎的存储和保留控制。
Codex Security 在分层应用安全计划中最为有用——而非证明仓库无漏洞的依据。
实际变化在于,只要团队在流程中严格落实授权、威胁建模、验证和人工审批,安全审查现在可以更接近 AI 辅助开发的速度。
从一句话开始,几分钟内拿到完整网站。