首页/新闻资讯/正文详情

opencodex Cursor 原生本地执行解锁实战:运行时热切换、A/B 激活验证与沙箱感知策略门控

发布时间:2026/9/23 14:00:08 来源:云帆数科 栏目:资讯中心
opencodex Cursor 原生本地执行解锁实战:运行时热切换、A/B 激活验证与沙箱感知策略门控
【免费下载链接】opencodexUniversal provider proxy for OpenAI Codex Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code项目地址https://gitcode.com/gh_mirrors/ope/opencodex点击查看免费下载opencodex 是一个面向 OpenAI Codex 与 Claude Code 的通用 Provider 代理能够把 Cursor 等上游作为数据平面接入。本文基于仓库 devlog 工作单元260711_cursor_native_exec001_wp1_evidence.md 为证据主体配合 000_plan.md、010_wp2_sandbox_policy.md、011_wp2_evidence.md 同单元文档完整还原 Cursor 服务器驱动的本地文件读写被默认拒绝的根因、无需重启代理即可热切换配置的解锁流程、基于真实文件落盘的确定性 A/B 激活验证方法以及后续演进出的nativeLocalExec三态沙箱感知策略门控与对应测试体系。读完你将掌握如何诊断 Cursor 路由会话文件读写全部被拦截的问题如何通过管理 API 在线翻转 Provider 配置并给出可复现的激活证据以及如何在请求文本授权可被伪造的安全审计结论下设计 fail-closed 的配置级授权模型。1 问题现场Cursor 会话文件读/写全部被拦截工作单元记录的真实用户报告是Codex 会话以danger-full-access沙箱模式运行经 opencodex 路由到cursorProvider上游 api2.cursor.sh但模型反馈file read/write are all blocked。代码级根因并不在 Codex 沙箱解析而在于Cursor 适配器对服务器驱动的本地执行native local exec默认全部拒绝且拒绝逻辑根本不会读取 Codex 会话声明的沙箱模式。证据链在 000_plan.md 中逐条给出src/adapters/cursor/native-exec.ts 的handleCursorNativeExec除非unsafeAllowNativeLocalExec生效否则每一个服务器驱动的本地执行 case 都会被拒绝包括readArgs、writeArgs、deleteArgs、lsArgs、grepArgs、shellArgs、shellStreamArgs、backgroundShellSpawnArgs、writeShellStdinArgs、fetchArgs当前实现见 native-exec.ts。拒绝文本NATIVE_LOCAL_EXEC_DISABLED定义在 src/adapters/cursor/native-exec-fs.ts提示模型改走目录内 shell 桥shell_command/exec_command/mcp_opencodex-responses_*别名或apply_patch。开关是每 Provider 级配置OcxProviderConfig.unsafeAllowNativeLocalExecsrc/types/provider.ts在 src/adapters/cursor/live-transport.ts 中接入执行上下文。用户的~/.opencodex/config.json中providers.cursor未设置该标志导致所有经 Cursor 路由的模型对文件操作一律收到策略拒绝同时全仓搜索确认没有任何地方解析sandbox_mode/danger-full-access即 Codex 会话的沙箱模式从未被纳入决策。线上流量佐证~/.opencodex/usage.jsonl显示 cursor-provider 轮次gpt-5.6-luna、grok-4.5完成状态为 200但模型明确回报文件访问被拦截另有少量 400/502 传输行。一句话结论打开 Cursor 本地执行的唯一钥匙是 Provider 配置上的显式 opt-in 标志而不是请求方自报的沙箱声明。2 WP1 方案不重启代理的热切换live flag flip第一个工作包WP1的目标是在运行中的代理上直接翻转配置而不重启代理进程。重启被明确排除因为那会杀掉正在驱动的直播流包括本次工作的会话本身。2.1 翻转入口管理 API翻转通过管理 API 完成两条命令配合打开 Provider 调试帧可选用于后续激活证据PUT /api/debug {debug:true}生效后runtimeOverride.debugtrue即 Provider 帧诊断开启。提交完整 Cursor Provider 对象并附带新标志POST /api/providers Content-Type: application/json { name: cursor, provider: { adapter: cursor, baseUrl: https://api2.cursor.sh, unsafeAllowNativeLocalExec: true } }返回{success:true,name:cursor}。其中provider部分应以config.json中现有完整 Provider 对象为基底再追加标志避免丢失既有字段。翻转后的配置 diff 检查证实变更键仅有[unsafeAllowNativeLocalExec]一个对比翻转前快照其余字段原样保留。2.2 为什么能热生效闭包共享的内存配置关键机制是管理端点直接变更服务器闭包共享的内存中配置对象而不是要求重载文件。相关实现位于 src/server/management/provider-routes.tsPOST /api/providers读取 JSON body校验name、adapter、baseUrl、模型显示名、SSRF 目标等然后调用stripCodexRuntimeProviderFields剥离_codexAccountOverride/_required这类运行时字段由于 Cursor 的 OAuth token 并不存储在 Provider 对象上apiKey缺失覆写不会丢失任何密钥而多密钥池apiKeyPool的延续由端点专门处理见 provider-routes.ts校验通过后执行save(config)持久化到磁盘同时内存中的共享对象已被变更后续每个请求都会重新读到新值。从源码结构看内存变更 每请求重读正是热翻转得以成立的两个支点前者让当前进程内的后续请求立即生效后者让无需重启即可维持一致性。这也是评审要求reviewer finding 4点名验证的存活语义。3 A/B 激活验证真实文件读写作为确定性证据热翻转之后必须有可复现、不可抵赖的证据证明本地执行确实被激活了而不仅是配置字段变了。WP1 采用直接POST /v1/responses请求 cursor 路由模型的方式做 A/B 对照。3.1 BEFORE标志未设置先准备测试文件/tmp/ocx-native-exec-test.txt内容为OCX-NATIVE-EXEC-TEST-2607111905 hello from baseline。以cursor/gpt-5.6-luna发起读取请求模型在 Cursor 上游通过本地 exec 的readArgs读文件BEFORE标志未设置模型原样转述了NATIVE_LOCAL_EXEC_DISABLED的拒绝文本即文件内容不可达。AFTER标志已翻转同一请求返回文件逐字节一致的内容OCX-NATIVE-EXEC-TEST-2607111905 hello from baseline—— 这正是文件内容本身只有真实落盘读取才能产生。3.2 AFTER写入必须真实落盘读取之外还要验证写入路径。由于裸 curl 请求没有向模型宣传apply_patch工具写操作会走 Cursor 原生的writeExec发起写入请求后/tmp/ocx-native-exec-write-test.txt在磁盘上真实创建内容为精确行OCX-WRITE-OK-2607111920模型回报 DONE。这一设计刻意避开了模型假装成功的可能文件必须真实存在于本地磁盘且内容精确匹配才构成 write 激活证据。4 激活证明Provider 调试帧中的 exec case 事件流A/B 往返只能证明模型答对了内容不能排除上游模型恰好自己猜出了答案。要确定性地证明readArgs/writeArgs确实在本地执行需要中间层证据。答案来自 Provider 调试帧Provider debug frames。4.1 帧事件从哪来开启ocx debug provider on后Cursor 直播传输的每一个服务器帧都会流过debugProviderDiagnostic(cursor,frame,...)诊断通道exec 帧内部还会携带具体的 exec case见 live-transport.ts最终写入调试环形缓冲区可通过GET /api/debug/logs读取。4.2 捕获到的事件序列2026-07-11 KST证据时间戳读轮次read turn捕获到{case:execServerMessage,exec:readArgs} // seq 21写轮次write turn捕获到完整的读 → 写 → 复核链条requestContextArgs seq 80 readArgs seq 83 / 143 shellStreamArgs seq 86 writeArgs seq 145 readArgs seq 165即 Cursor agent 通过原生 exec 完成了读取、写入、再读取复核全部在翻转后的本地执行。加上第 3 节的内容精确匹配 文件真实落盘往返两者叠加构成确定性激活证据A-gate blocker 2 的验收口径。4.3 收尾证据采集完毕后Provider 调试已恢复关闭debug回到 off避免在正式环境中持续输出诊断帧。5 安全审计转折请求文本授权可伪造WP1 完成后A-gate 第一轮评审reviewer: sol/Hubble给出了FAIL 4 个阻断项其中最核心的是请求文本授权可被伪造任何能触达 HTTP 数据平面的调用方都可以在 body 里断言沙箱短语parser.ts:238,319 逐字接受 body 文本若以请求文本作为授权依据等同于授权给所有能发请求的人。这个结论直接否决了最初请求文本 OR 配置标志的设计方向。处置决定被完整记录在 000_plan.md 的 A-gate round 1 表格中并落地为 WP2 的权威设计 010_wp2_sandbox_policy.md请求文本永远不能单独授权改为config-selected模式只有配置所有者能选择策略默认保持off且任何 opt-in 都不会比历史标志放宽更多。6 WP2 设计nativeLocalExec三态策略模式6.1 新配置项与语义新增 Cursor-only Provider 选项src/types/provider.tsnativeLocalExec?: off | codex-sandbox | on;取值语义off默认维持历史行为所有原生本地执行一律拒绝on总是允许与历史标志unsafeAllowNativeLocalExec: true语义完全一致codex-sandbox仅当请求的 instructions/system 或 developer 角色文本声明了 Codex 全访问沙箱sandbox_mode ... danger-full-access时放行严格窄于on优先级显式nativeLocalExec优先否则历史布尔标志unsafeAllowNativeLocalExec: true映射为on否则off。该优先级逻辑由 src/adapters/cursor/exec-policy.ts 的resolveCursorNativeExecMode实现并有专门测试用例覆盖explicit off beats legacy true 等。6.2 纯函数设计exec-policy.ts 提供三个纯函数resolveCursorNativeExecMode(provider)按上文优先级解析模式cursorRequestDeclaresFullAccess(request)用正则/sandbox_mode[^\n]{0,80}danger-full-access/i检测声明carrier 只有 system/instructions 条目和 developer 角色消息user 角色文本刻意不作为 carrier调用方可控不能参与授权effectiveCursorNativeExecAllow(provider, declared)mode on || (mode codex-sandbox declared)的真值表。注意当前仓库 exec-policy.ts 的实现中effectiveCursorNativeExecAllow实际只返回mode on即codex-sandbox被保留为可识别但 fail-closed的拼写opencodex 没有可信的每请求证明手段来确认调用方提供的 system/developer 文本真的反映了 Codex 沙箱状态因此按off处理。这与 registry 目录注记一致见 src/providers/registry/entries-core.tscodex-sandboxaccepted for backwards compatibility but fails closed。6.3 调用链贯通src/types/provider.ts 保留历史布尔标志并标注为on的别名兼容既有配置CursorTransportFactoryInput增加可选字段requestDeclaresFullAccess?: booleansrc/adapters/cursor/transport.tssrc/adapters/cursor.ts的runTurn在构造CursorRunRequest后计算declaredsystem developer 角色消息都经过翻译保留并传入工厂输入live-transport.ts 构造函数与prepareMcp中execContext.unsafeAllowNativeLocalExec改由effectiveCursorNativeExecAllow(input.provider, input.requestDeclaresFullAccess true)构建构造处 #L563、MCP 准备处 #L598handleCursorNativeExec与rejectNativeFileMutations本身保持零改动策略变化只体现在注入的执行上下文布尔值上。7 拒绝路径与重定向文本fail-closed 的细节即使标志为 false拒绝也不是干巴巴的一句no。NATIVE_LOCAL_EXEC_DISABLED完整文本native-exec-fs.ts给出可操作的替代路径文件读取/列表/搜索走 catalog 中的 shell 桥工具shell_command/exec_command或mcp_opencodex-responses_*显示别名并给出 POSIXcat、head、ls、rg、grep与 Windows PowerShellGet-Content、Get-ChildItem、Select-String等价命令文件编辑走apply_patch工具使 Codex 能审批变更、执行沙箱策略、展示 diff 并记录 rollout附加指令Do NOT narrate this redirect, do NOT comment on tool availability, and do NOT re-announce the task — just make the bridge call避免模型把重定向过程写成大段注释而消耗 token。拒绝路径的完整分布见 native-exec.ts未授权时readArgs/writeArgs/deleteArgs/lsArgs/grepArgs/shellArgs/shellStreamArgs/backgroundShellSpawnArgs/writeShellStdinArgs/fetchArgs各有对应的reject*ExecForPolicy拒绝函数mcpArgs、computerUseArgs、recordScreenArgs等另有通道处理。8 信任模型与环路安全C-gate 评审结论WP2 补丁经过三轮独立评审011_wp2_evidence.mdRound 1FAILcodex-sandbox信任调用方可控的 system/developer 文本在免认证的 loopback 绑定上任何本地进程都能断言该短语。接受的一半信任模型必须写清楚部分反驳的一半保留 loopback 免认证不破坏 Codex 零配置启动。Round 2FAIL反驳前提有误——loopback 不等于同一 OS 用户多用户机器上其他本地用户也能触达isAllowedRequestOrigin默认拦截非 loopback 浏览器来源但放行 loopback 来源与无来源调用方。Round 3PASS措辞与实际行为一致无阻断项。最终写入配置文档的信任说明src/types/provider.tsoff (default) rejects server-driven local exec; on always allows it for this provider and should be used only for a trusted local experiment on a host where every>赞分享【免费下载链接】opencodexUniversal provider proxy for OpenAI Codex Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code项目地址https://gitcode.com/gh_mirrors/ope/opencodex点击查看免费下载相关推荐opencodex Cursor 原生本地执行安全策略config-selected 三态授权模型nativeLocalExec深入解析opencodex Cursor 原生本地执行安全策略config selected 三态授权模型nativeLocalExec深入解析 本技术指南以 oAgent Governance Toolkit 入门指南面向 AI 代理的运行时治理基础设施策略执行、零信任身份与执行沙箱Agent Governance Toolkit 入门指南面向 AI 代理的运行时治理基础设施策略执行、零信任身份与执行沙箱 本文基于仓库 docs/i1人工智能AI AgentAI 安全治理策略引擎Agent 沙箱认证鉴权tradingview-mcp 回测数据实操指南3 个工具 1 个技能从策略指标到 AI 绩效报告tradingview mcp 回测数据实操指南3 个工具 1 个技能从策略指标到 AI 绩效报告 Pine Script 回测跑完StrategyMCP 服务AI 应用人工智能金融科技CLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

3步吃透moonwalk图解原理:从零实战避坑指南
3步吃透moonwalk图解原理:从零实战避坑指南

3步吃透moonwalk图解原理:从零实战避坑指南 别被官方文档那几十页的晦涩术语劝退了,读完后脑子一团浆糊还抓不住重点。今天咱们直接上 图解原理 ,用代码把 moonwalk 的核心逻辑拆得明明白白。… · 2026/9/23 14:00:02

GitHub星标收藏:Android开源项目与文章精选合集
GitHub星标收藏:Android开源项目与文章精选合集

作为一个常年混迹GitHub的Android开发,我手机里收藏夹的星标数量比微信未读消息还多。每次换电脑、重装系统,第一件事就是赶紧把那些攒了好几年的开源项目链接重新找回来,生怕哪个好用的库从此失联。于是去年年底,我干脆做了个决定… · 2026/9/23 13:59:56

Erlang/OTP EUnit 版本演进全解:从 2.0 到 2.11 的核心特性、宏与源码实现
Erlang/OTP EUnit 版本演进全解:从 2.0 到 2.11 的核心特性、宏与源码实现

Erlang/OTP EUnit 版本演进全解:从 2.0 到 2.11 的核心特性、宏与源码实现 【免费下载链接】otp Erlang/OTP 项目地址: https://gitcode.com/gh_mirrors/ot/otp EUnit 是 Erlang/OTP 官方的轻量级单元测试框架(首次随 OTP 发布的版本即由 Richard… · 2026/9/23 13:59:56

Crossplane 如何用 terraform-provider-runtime 生成 Provider:从 Terraform Schema 到托管资源控制器的设计解析
Crossplane 如何用 terraform-provider-runtime 生成 Provider:从 Terraform Schema 到托管资源控制器的设计解析

Crossplane 如何用 terraform-provider-runtime 生成 Provider:从 Terraform Schema 到托管资源控制器的设计解析 【免费下载链接】crossplane The Cloud Native Control Plane 项目地址: https://gitcode.com/gh_mirrors/cr/crossplane 导读 本文基于 Cros… · 2026/9/23 14:46:09

Windows下cuDNN 9.5.0.50配置指南:解决DLL加载失败与版本匹配问题
Windows下cuDNN 9.5.0.50配置指南:解决DLL加载失败与版本匹配问题

简介:本资源为面向 Windows 平台的 cuDNN 9.5.0.50 完整开发库压缩包,对应 CUDA 12 环境,适合从事深度学习框架搭建、GPU 加速推理与训练的开发者和研究人员使用。包内共 32 个文件,包含 16 个 lib 静态与导入库、8 个 dll 动态链… · 2026/9/23 14:46:09

FX3U伺服回原点三大实战方法详解
FX3U伺服回原点三大实战方法详解

简介:本资源是一份面向自动化工程师与PLC初学者的三菱FX3U系列PLC伺服回原点实战指南,聚焦运动控制中关键的定位起点建立问题,系统解析三种工业现场常用回原策略及其PLC编程实现。文档为单个1.53MB的Word文件(.docx)&a… · 2026/9/23 14:46:03

Ludwig 中的 entmax:从 sparsemax 到可学习稀疏性的 α-entmax 概率映射与损失函数实战指南
Ludwig 中的 entmax:从 sparsemax 到可学习稀疏性的 α-entmax 概率映射与损失函数实战指南

Ludwig 中的 entmax:从 sparsemax 到可学习稀疏性的 α-entmax 概率映射与损失函数实战指南 【免费下载链接】ludwig Low-code framework for building custom LLMs, neural networks, and other AI models 项目地址: https://gitcode.com/gh_mirrors/lu/ludwig … · 2026/9/23 14:46:02

PHPStan 错误码 offsetAccess.noDim 完全指南:理解并修复「空维度读取」问题
PHPStan 错误码 offsetAccess.noDim 完全指南:理解并修复「空维度读取」问题

开发工具代码质量静态分析 【免费下载链接】phpstan PHP Static Analysis Tool - discover bugs in your code without running it! 项目地址: https://gitcode.com/gh_mirrors/ph/phpstan 点击查看 免费下载 导读 offsetAccess.noDim 是 PHPStan 报告的一类数组偏… · 2026/9/23 14:45:53

Numba 发布历史全解读:从 0.57 到 0.2 的功能演进、弃用策略与依赖升级路线图
Numba 发布历史全解读:从 0.57 到 0.2 的功能演进、弃用策略与依赖升级路线图

Numba 发布历史全解读:从 0.57 到 0.2 的功能演进、弃用策略与依赖升级路线图 【免费下载链接】numba NumPy aware dynamic Python compiler using LLVM 项目地址: https://gitcode.com/gh_mirrors/nu/numba Numba 是一款基于 LLVM 的 NumPy 感知的动态 Pyth… · 2026/9/23 14:45:47

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码