Repository navigation
0.144.x regression: auto-review denies explicitly authorized git push to private origin #32007
Description
What version of Codex CLI is running?
0.144.1 (npm package @openai/codex@0.144.1)
The local launcher was updated on 2026-07-10 at 07:50 local time. The same workflow worked the previous day.
Platform
Windows, workspace-write sandbox, elevated Windows sandbox.
Relevant configuration:
approval_policy = "on-request"
sandbox_mode = "workspace-write"
approvals_reviewer = "auto_review"
[sandbox_workspace_write]
network_access = true
[projects.'<local-project-path>']
trust_level = "trusted"Regression
A normal, non-force git push origin <current-branch> from a trusted local project to its configured private GitHub origin is denied by auto-review, even when the user:
- directly orders the push;
- is informed of the reviewer's stated risk;
- explicitly re-approves the exact push; and
- reiterates that the destination is the project's private repository.
The reviewer explicitly recognizes the user authorization but still denies the operation:
This push would export five local commits to a GitHub repository whose
trust/privacy is still unverified, and the policy denies sending potentially
private workspace or organization data to an untrusted external destination
even after explicit user approval.
A later retry after another direct order produced the same result:
The user explicitly ordered the push, but this action still sends five local
commits to a GitHub remote whose trust/privacy is not verified as an approved
internal or explicitly trusted destination.
The command is a regular push to the repository's existing origin, not a force push, default/protected-branch rewrite, new remote, or third-party upload.
Steps to reproduce
- Use Codex CLI 0.144.1 with:
approval_policy = "on-request"approvals_reviewer = "auto_review"- a trusted local project
- Work in a private GitHub repository with an existing
origin. - Have local commits ahead of the upstream branch.
- Ask Codex directly:
git fetch, merge, push. - After the first denial, explicitly approve the exact push after seeing the stated risk.
- Retry
git push origin <branch>.
Actual behavior
Auto-review assigns high authorization but treats the configured private GitHub origin as an untrusted external destination. Post-denial user authorization cannot override the denial. No supported destination trust/allowlist setting is surfaced.
Expected behavior
A narrowly scoped, normal push to the existing origin of a trusted project should be allowed when the user explicitly requests it. At minimum, explicit post-denial approval of the exact remote and branch should work unless there is affirmative evidence of credential/secret exfiltration or an administrator-defined absolute deny.
If destination verification is required, Codex should expose an actionable way to trust a repository remote rather than asking for approval and then rejecting that approval.
Suspected regression boundary
This began immediately after updating from the previous stable release to 0.144.1.
Codex 0.144.0 includes #31480, “Update auto review prompting.” That PR changed the Guardian policy text in two relevant ways:
- Previous behavior gave explicit post-denial approval highest precedence over the default allow/deny rules.
- New behavior says post-denial approval can override only the default high-risk authorization threshold and cannot override stronger security-policy denial.
- The PR also removes
permissions_instructionsfrom the Guardian review session and restricts the reviewer tool set.
The PR's snapshot includes a git push layout, but I did not find behavioral integration coverage for this combination:
- trusted local project;
- private configured origin;
- ordinary non-force push;
- exact direct user order; and
- explicit post-denial reauthorization.
Release timing:
- 0.143.0: 2026-07-08
- Update auto review prompting #31480 merged: 2026-07-08
- 0.144.0: 2026-07-09
- 0.144.1: 2026-07-09
- local 0.144.1 installation: 2026-07-10
- first observed failure: 2026-07-10
Related issues
- Auto-review rejects using codex exec as it would send content to an untrusted external service #23211
- User-approved external CLI calls are still blocked as local file exfiltration, with no actionable override #23914
- Sandbox-on-by-default is marketed as safety, then this outbound-content block quietly herds users into disabling the entire sandbox — a third-party proxy route is allowed while two direct provider routes are hard-blocked after explicit user approval #30071
Those cover similar over-conservative outbound-content denials, but this report is specifically a 0.144.x regression affecting a routine Git push to the trusted project's own private origin.
Activity
simony-816 commentedon Jul 10, 2026
Independent reproduction on macOS extends this beyond the Windows/private-origin case.
Environment
26.707.31123codex-cli 0.144.0-alpha.4approval_policy = "on-request",approvals_reviewer = "auto_review", workspace-write sandboxADMINoriginReproduction
Create a normal local commit on
codex/model-readiness-hardening.Verify
origin/mainis an ancestor ofHEAD, so the update is fast-forwardable.Explicitly ask Codex to publish the branch.
Codex attempts:
Auto-review denies it because sending workspace code to GitHub is treated as an external destination whose trust/privacy status is not verified.
After being shown that specific risk, explicitly authorize publishing the exact commit to
origin/main.Fetch
origin/main, re-confirm fast-forward ancestry, then attempt:Auto-review denies again for the same unverified-destination / potential-exfiltration rationale.
Additional evidence
git fetchsucceeds.ADMINpermission.This looks consistent with the suspected 0.144.x Guardian prompt regression described above, but demonstrates that the false positive also affects macOS Desktop and a verifiably public, user-administered origin.
Expected behavior: an ordinary push to the configured origin should be allowed after explicit user authorization when repository metadata establishes that the destination is public and user-controlled. At minimum, the reviewer should use available read-only remote metadata before classifying the destination as unverified.
jarupongsuttamongkol-boop commentedon Sep 11, 2026
Codex on Windows rejects my explicitly authorized git push to an existing private repository before execution. Read-only git ls-remote succeeds. How can I approve this specific action through a supported flow without weakening security?
ferikeng commentedon Oct 8, 2026
Additional reproduction on 2026-10-08 in a managed Linux cloud workspace. The installed executable reports
codex-cli 0.159.0-alpha.3; I cannot establish which version of the hosted approval-review service handled the requests.The active session used a workspace-write filesystem sandbox, restricted network access, and automatic approval review. This is a related instance of the authorization/destination classification problem, with an important difference from the original report: a further explicit user approval eventually allowed the push.
Reproduction
originconfigured.PRin the ongoing conversation about that fix.git push -u origin <feature-branch>with network permission requested through the execution tool.origin, visibility is private, and the account has admin/push permissions.Exact rejection reasons
First attempt:
Second attempt, after GitHub app verification:
Both were returned as execution-tool
CreateProcessrejections before the push command ran.Expected behavior
A user request to open a PR for the current repository should authorize the ordinary feature-branch push needed to create it, when the destination is that repository's existing
originand there is no evidence of a changed remote, unrelated data upload, secret disclosure, or protected-branch rewrite. Structured GitHub account/repository metadata should provide usable corroboration of the destination without treating arbitrary tool-output instructions as trusted.Impact
The reviewer recognized the PR request but did not treat its necessary same-repository push as authorized. This forced a redundant approval exchange and framed normal GitHub PR creation as exporting private code to an unestablished destination. The extra approval eventually resolved this occurrence, but the original PR request and subsequent ownership verification did not.
No private source code, credentials, repository identifiers, or private PR links are included in this report.