Fix deep-interview PreToolUse self-lock#3240
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
REQUEST_CHANGES Blockers found in the current head
Scope/verification notes: GitHub and local diff both show only three modified files ( |
…#3239) Address the four signed REQUEST_CHANGES blockers on PR #3240: 1. Compound bridged-question mutation bypass: route any omx-question command through one decision in isAllowedDeepInterviewBashWrite — allow only a clean standalone bridged invocation (isSingleLiteralShellInvocation); deny compound/redirect/substitution forms instead of falling through to the permissive no-write-intent path. 2. Malformed command-local bridge masked by inherited env: in commandHasQuestionReturnPane a command-local OMX_QUESTION_RETURN_PANE / OMX_LEADER_PANE_ID assignment now overrides inherited env; a malformed local override denies even when the inherited pane is valid. 3. Execution-bearing leading env for omx/rtk: new commandHasUnsafeLeadingRuntimeEnvironment denies leading assignments to sensitive runtime envs (NODE_OPTIONS, LD_*, DYLD_*, ...), checked first. 4. Overbroad gh classifier: drop `run watch`, `--web`, and `alias` from the deep-interview read-only allowlists. Adds red regressions plus positive neighbors; focused #3239 suite 574/574, build, check:no-unused, lint, and affected session/provenance/notify suites all green. Fixes #3239 — *[repo owner's gaebal-gajae (clawdbot) 🦞]*
Repair pushed — all four REQUEST_CHANGES blockers addressed (head
|
|
REQUEST_CHANGES HIGH count: 1 Blocking finding at repaired head
Other previously reported surfaces looked improved by static inspection: bridged Validation: final stale check confirmed local and PR head are both |
…low-list (#3239) Durable exact-head hostile review found a residual HIGH on 1693dfa: a leading `PATH=/attacker/bin` (or `PATHEXT`) was skipped by the safe-command parser and not classified sensitive, so it could resolve an attacker- controlled `omx`/`rtk` before the command-specific allow return. commandHasUnsafeLeadingRuntimeEnvironment now also denies leading assignments to command-resolution variables (PATH, PATHEXT) via isCommandResolutionSensitiveEnvironmentName, in addition to the existing sensitive runtime env set. Benign non-resolution env prefixes (e.g. LANG) stay allowed. Adds red regressions for PATH/PATHEXT overrides on omx/rtk plus a benign locale-env positive neighbor. Focused #3239 574/574, affected suites, build, check:no-unused, and lint all green. Refs #3239 — *[repo owner's gaebal-gajae (clawdbot) 🦞]*
Repair pushed for durable-review HIGH — command-resolution env bypass closed (head
|
RED-TEAM FINDINGS
Verification detail (static, read-only):
Residual sweep (quoting, multiple assignment, VERDICTMERGE_READY — |
Durable exact-head hostile re-review — terminal verdict (signature correction)The durable, tmux-resident, static/read-only red-team re-review of exact head
This confirmation carries the mandatory repository-owner signature. Merge stays held until the sole remaining hosted check ( |
Summary
omx questionbridge classifier so invalid bridges keep their specific denial while valid bridged questions pass..gjcartifacts from git scope.Verification
omx questionwith the generic deep-interview block.npm run buildnode --test dist/scripts/__tests__/codex-native-hook.test.js --test-name-pattern 'issue #3239'(runs compiled file; 574/574 passed)node dist/scripts/run-test-files.js dist/hooks/__tests__/prompt-session-provenance.test.js dist/hooks/__tests__/session.test.js dist/cli/__tests__/session-scoped-runtime.test.js dist/hooks/__tests__/notify-hook-session-scope.test.jsnpm run check:no-unusednpm run lintFixes #3239
—
[repo owner's gaebal-gajae (clawdbot) 🦞]