fix(codex): restrict computer-use installation#97955
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 29, 2026, 8:08 PM ET / 00:08 UTC. Summary PR surface: Source +4, Tests +62, Docs +3. Total +69 across 5 files. Reproducibility: yes. at source level: current main routes authorized Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land a maintainer-reviewed version that gates only install-time host mutation, preserves status reads, and explicitly accepts the fail-closed compatibility change for non-owner authorized senders. Do we have a high-confidence way to reproduce the issue? Yes, at source level: current main routes authorized Is this the best way to solve the issue? Yes, this is the best inspected fix shape: the PR gates the mutating chat install action before Codex can add marketplaces or install plugins, while preserving status as a read path and matching the sibling AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 18b2ff683fd3. Label changesLabel justifications:
Evidence reviewedPR surface: Source +4, Tests +62, Docs +3. Total +69 across 5 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
Fresh real behavior proof rerun against the current merged The production This is behavioral, not mock-only, proof:
Focused regression validation also passed: The dependency contract was checked directly at OpenAI Codex tag |
|
🦞🧹 Reason: re-review requires an open issue or PR. |
|
@clawsweeper re-review |
What Problem This Solves
Fixes an issue where an authorized non-owner chat sender could run
/codex computer-use installand select Codex marketplace, plugin, and MCP server resources. Installation mutates trusted host state and can make installed MCP processes available without the owner oroperator.adminauthority required by sibling plugin-write commands.Why This Change Was Made
The Codex command handler now applies the existing owner-or-
operator.adminpolicy only to the mutatinginstallaction. Read-onlystatusbehavior, including existing overrides, remains available to authorized senders for compatibility.User Impact
Owners and
operator.adminGateway clients retain the complete Computer Use setup workflow. Other authorized senders can still inspect status but can no longer install or reconfigure trusted Computer Use resources.Evidence
installCodexComputerUseis called.operator.adminregression proves privileged installation remains available.rust-v0.139.0confirmed thatplugin/installinstalls and loads plugin MCP definitions, whileplugin/readis the separate status lookup path.Real Codex app-server behavior proof
Ran the production
handleCodexCommandentry point against the bundled@openai/codex0.139.0 app-server with an isolatedOPENCLAW_STATE_DIRand a disposable local marketplace/plugin whose MCP server exposes one proof tool. No model credentials or personal Codex state were used.The same disposable setup was used for both calls. The denied
operator.writecaller returned before Codex plugin installation or MCP launch; theoperator.admincaller installed the plugin through the real app-server, launched its MCP process, discovered its tool, and returnedComputer Use: ready. The temporary state was removed after the run.Summary
Restrict Codex Computer Use installation to trusted owner/admin callers without breaking the existing read-only command surface.
Changes
/codex computer-use installat the command-handler boundary.Validation
node scripts/run-vitest.mjs extensions/codex/src/commands.test.ts extensions/codex/src/command-plugins-management.test.ts— 134 passed.corepack pnpm build— passed.corepack pnpm exec oxfmt --check extensions/codex/src/command-authorization.ts extensions/codex/src/command-handlers.ts extensions/codex/src/command-plugins-management.ts extensions/codex/src/commands.test.ts docs/plugins/codex-computer-use.md— passed.corepack pnpm docs:check-mdx— passed for 685 files.git diff --check upstream/main...HEAD— passed.Notes
CHANGELOG.md.