fix(permissions): enforce exact deny-read paths#15977
Open
viyatb-oai wants to merge 8 commits intomainfrom
Open
fix(permissions): enforce exact deny-read paths#15977viyatb-oai wants to merge 8 commits intomainfrom
viyatb-oai wants to merge 8 commits intomainfrom
Conversation
This was referenced Mar 27, 2026
Contributor
|
Closing this pull request because it has had no updates for more than 14 days. If you plan to continue working on it, feel free to reopen or open a new PR. |
Co-authored-by: Codex <noreply@openai.com>
cbde62a to
a8a396a
Compare
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Contributor
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a5d463d15e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
22df5ae to
69855ab
Compare
Keep approval/escalation flow intact while ensuring deny-read policies do not allow first-attempt sandbox bypass. Centralize the clamp in sandbox override selection and remove the special rejection helper. Co-authored-by: Codex <noreply@openai.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR makes exact-path
FileSystemSandboxPolicyentries withaccess = noneenforceable as deny-read policy inside Codex core.The policy already had a split filesystem model that could express unreadable paths, but several core execution paths still treated those entries as advisory metadata. In practice, exact deny-read entries could be lost while rebuilding policy from legacy
sandbox_mode, surfaced throughlist_dir, or bypassed when an exec-policy allow rule / explicit escalation / sandbox-denial retry caused a command to run outside the sandbox.This PR is the exact-path/subtree enforcement foundation only. It does not add glob syntax, managed config parsing, or new platform sandbox backends.
What Changed
FileSystemReadDenyMatchertocodex-rs/protocol/src/permissions.rsso core code can evaluate exact deny-read semantics consistently.access = noneentries as exact path plus subtree denies.SessionConfigurationrebuilds split filesystem policy from a coarse legacysandbox_modeupdate.list_dir:allowrules no longer imply sandbox bypass when deny-read restrictions existSecurity Boundary
Deny-read entries are security-relevant policy. Approvals can still allow broader execution, but they should not silently discard explicit read-deny restrictions by switching the first attempt or retry path to an unsandboxed execution mode.
view_imageintegration with sandbox-backed reads: #15213.