fix(security): bind admission config reads to regular files - #255
Merged
seonghobae merged 4 commits intoSep 10, 2026
Merged
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
seonghobae
marked this pull request as ready for review
September 10, 2026 08:31
This was referenced Sep 10, 2026
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.
Closes #254 only after this child is ordinarily integrated into #129 and its valid delta/evidence is retained.
Scope
Wardnet-owned Agent Artifact Admission local configuration and credential bootstrap only. This child does not fetch/install/execute artifacts, authorize egress, own effective runtime environment/config, or copy quarantine/EgressWeave/contextual-orchestrator/AppGuardrail behavior.
Base is exact
feat/agent-artifact-admission@c4030f7fecaa5627ccec31ce58eca7e59db45334.Hosted RED
Test-only exact
dcfa3ace0b5d83bbc4fd5f5d76fbf22008a6c6e4added hostile final-symlink cases for both protected credentials and reviewed policy configuration. CI34453151722, rust job102793305406, acquired a realubuntu-24.04runner and checked out merge candidate909929f5b1debbfd4b6ba23f0839cc21f53d359a.cargo test --locked --workspacereachedlocal_file_authority_contract.rs; both hostile cases failed exactly because the currentFile::open(path)readers followed final symlinks and accepted the safe-permission targets. The remaining pre-existing workspace tests shown before that suite were green. This is the retained semantic RED witness.Causal repair candidate
Current exact head is
df64d5f87588ba094793d5f52569b191673b9dc1. The production reader now uses one Linux read-onlyO_NOFOLLOW | O_NONBLOCKopen for each security-sensitive local authority input, validates regular-file type plus the existing policy/credential permission invariant on that same descriptor, and only then materializes bounded bytes. Non-Linux targets fail closed until an equivalent native contract exists, matching the existing file-backed audit-sink platform boundary.A bounded Linux FIFO child-process acceptance test now proves both readers reject a no-writer FIFO promptly rather than hanging before type validation. No pathname pre-check plus second-open TOCTOU workaround was introduced.
docs/doctoring/agent-artifact-admission-configuration-integrity.mdrecords the descriptor-bound authority model, residual scope and references.Traceability: POSIX.1-2024
open/openatspecifies final-link rejection underO_NOFOLLOWand nonblocking read-only FIFO open behavior underO_NONBLOCK; MITRE CWE-59 covers improper link resolution before file access; existing permission controls remain mapped to CWE-732 and NIST SP 800-53 Rev. 5 CM-5/AC-6.Current-head CI
34453941622and Fuzz34453941689are pending/queued. Keep Draft until exactdf64d5...is terminal GREEN, review threads are clean, and the complete child delta is ordinarily integrated into #129 without force update or gate weakening. Predecessor RED is diagnostic evidence only and is not promoted as current-head GREEN.