Skip to content

fix(policy): v1.2.37 quoted file-operand path-guard subjects — close F1/F2 control-plane bypass (t_fc317116, rework t_5a2b60e7) - #67

Open
maximalang wants to merge 3 commits into
codex/company-osfrom
fix/t_5a2b60e7-v1237-quoted-operands
Open

maximalang wants to merge 3 commits into
codex/company-osfrom
fix/t_5a2b60e7-v1237-quoted-operands

Conversation

@maximalang

@maximalang maximalang commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

What

Closes the F1 (HIGH) / F2 (MEDIUM) control-plane bypass: the F5 prose rule ("quoted spans are never targets") let sqlite3 "<board db>" "<mutation>" classify as allow:scoped_state_change and rm "<board db>" as allow:destructive_change — an in-process bypass of the protected-path guard. Defect confirmed LIVE 09.10.2026 by the company 23-case probe (C4/C5 allow instead of deny:policy_control_plane_mutation) and re-confirmed here on the pristine committed trunk base.

Change

_path_guard_subjects treats the FIRST quoted positional of an allowlisted file-operand program (sqlite3, cp, mv, rm, del, copy, move, xcopy, robocopy, tee) as a real filesystem target; sqlite3 is pinned to exactly one file positional (later positionals stay SQL prose). Extraction stays strictly allowlist-only: no unconditional quoted-span scan, the value-flag prose exclusion still applies, non-allowlisted programs keep quoted-prose behavior, quoted READ probes of policy-controlled stores stay allow:read_only via the guard's read arm.

Slice content is byte-identical to the never-merged PR #54 candidate (stale pin 1.2.35, dead anchor), re-anchored on the true trunk base and re-pinned to 1.2.57. PR #54 is closed by disposition; this PR supersedes it.

  • Base: 9b09444 (trunk codex/company-os head at branch time)
  • Reconciliation with merged v1.2.34 W4 prose-mask (PR fleet-policy v1.2.34: worker read-lane FP fixes W1-W5 (t_d94dde9d) #53): the value-flag corpus case git commit -m "delete kanban.db notes" now pins category repository_change (W4 strips the quoted span from the risk scan; was destructive_change on the 1.2.31 base). Decision (allow) and the no-protected-subject property unchanged — pinned in test_value_flag_quoted_message_stays_prose.

Evidence

Rollback: revert this single commit; live plugin is not installed from this PR (rollout is a separate owner task).

…F1/F2 control-plane bypass (t_fc317116, rework t_5a2b60e7)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant