fix(policy): treat extension-produced instructions as untrusted - #98
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus 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 |
|
Closing as superseded/duplicate after fresh exact-current comparison with active PR #78 ( |
Partial implementation of #27, stacked on PR #97.
Buyer/security gap
Issue #27 requires extension content, messages, and tool output to remain untrusted observations rather than executable instructions. The current policy rejects
InstructionSource::WebContent, but the core trust-class enum has no extension-produced source, so an adapter cannot represent this boundary explicitly.Dependency
This Draft is stacked on exact PR #97 head
912e0909169ed2fee1b26bce126f14e9390822bd. Keep Draft while #97 and its prerequisites remain active. No predecessor check/review/status transfers.TDD state
Current test-only head
7a8e9c074ca5bebf56e366d1d3be6b509b117be1adds a realistic policy-boundary regression requiringInstructionSource::Extensionand requiring it to fail closed withDeny(UntrustedInstructionSource)even when the requested observation otherwise has capability and origin authority. Production support is intentionally absent at this head so CI can establish RED.Truth boundary
This slice classifies extension-produced instructions as untrusted policy input. It does not authenticate an extension, attest Chromium permissions/profile state, grant extension or Agent capabilities, parse extension messages, authorize native messaging, or complete the Manifest V3 compatibility matrix.