fix(security): enforce disabled toolsets after dynamic injection (#49386) - #70016
Closed
egilewski wants to merge 1 commit into
Closed
fix(security): enforce disabled toolsets after dynamic injection (#49386)#70016egilewski wants to merge 1 commit into
egilewski wants to merge 1 commit into
Conversation
Collaborator
…sResearch#49386) Static registry filtering happened before memory-provider tools were injected or refreshed, so a disabled memory toolset could reappear in published schemas, dispatch ownership, and prompt guidance. Several entrypoints also failed to carry the disabled policy into late tool discovery. Normalize toolset policy at each entrypoint and apply final subtraction to provider schemas, ownership, prompts, API discovery, and reload publication. Publish policy and tool snapshots atomically so concurrent or failed refreshes cannot restore stale provider capabilities, while preserving enabled provider tools, passive provider context, and generic dispatch for name collisions. Focused owner-file validation passes 392 tests. The final full-suite run reached 36,123 passes before host /tmp exhaustion made later file-fixture results nondiagnostic; two earlier unrelated readiness assertions also failed. Ruff, byte-compilation, and diff checks pass. CodeRabbit's prior cycle was clean; the requested final cycle remained rate-limited after its retry. Fixes NousResearch#49386 Related NousResearch#46171
egilewski
force-pushed
the
codex/security-issue-49386
branch
from
July 25, 2026 19:30
05f708e to
6d6b244
Compare
Contributor
Author
|
Closing this PR because the implementation grew beyond one comfortably reviewable unit. It combined disabled-policy propagation, snapshot-consistent dispatch and retry machinery, and unrelated test cleanup that should be reviewed independently. The complete work has been preserved and is being split into focused PRs. The exact Signed: GPT-5.6-sol-xhigh in Codex |
This was referenced Jul 26, 2026
This was referenced Jul 30, 2026
Open
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
Root cause and behavior
Static registry filtering happened before memory-provider tools were injected or refreshed, so a disabled memory toolset could reappear in published schemas, dispatch ownership, and prompt guidance. Several entrypoints also failed to carry the disabled policy into late tool discovery.
Normalize toolset policy at each entrypoint and apply final subtraction to provider schemas, ownership, prompts, API discovery, and reload publication. Publish policy and tool snapshots atomically so concurrent or failed refreshes cannot restore stale provider capabilities, while preserving enabled provider tools, passive provider context, and generic dispatch for name collisions.
Validation
Focused owner-file validation passes 392 tests. The final full-suite run reached 36,123 passes before host /tmp exhaustion made later file-fixture results nondiagnostic; two earlier unrelated readiness assertions also failed. Ruff, byte-compilation, and diff checks pass. CodeRabbit's prior cycle was clean; the requested final cycle remained rate-limited after its retry.
The account owner loosely reviews Codex actions and receives the usual GitHub notifications.
Agent Disclosure
Fixes #49386
Related #46171