fix(exec): gate versioned inline interpreters#96216
Conversation
|
Superseded by the current behavioral proof comment below. The latest proof removes the stale |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Codex review: needs maintainer review before merge. Reviewed June 24, 2026, 2:58 PM ET / 18:58 UTC. Summary PR surface: Source +35, Tests +19. Total +54 across 3 files. Reproducibility: yes. Current main exact-matches interpreter names while strictInlineEval consumes that detector, and the contributor's redacted node-host proof shows the fixed head denying python3.13 -c before execution and keeping allow-always one-shot. Review metrics: 1 noteworthy metric.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the shared detector hardening after explicit maintainer/security acceptance of the stricter approval behavior, without adding a parallel runtime-specific detector. Do we have a high-confidence way to reproduce the issue? Yes. Current main exact-matches interpreter names while strictInlineEval consumes that detector, and the contributor's redacted node-host proof shows the fixed head denying python3.13 -c before execution and keeping allow-always one-shot. Is this the best way to solve the issue? Yes. The shared command-analysis detector is the best boundary because node-host, gateway/bash approval flows, audit checks, and allow-always persistence all consume it; duplicating checks in one runtime would be narrower and easier to drift. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against b6bc3ed0dbd8. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +35, Tests +19. Total +54 across 3 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
Behavioral proofThis addresses the current ClawSweeper ask for redacted real node-host/system.run proof, not only mocked handler tests. Head checked: What is now proven:
Code points checked:
Redacted live node-host/system.run proof: Interpretation:
Focused validation: |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
🦞👀 Command router queued. I will update this comment with the next step. |
|
@clawsweeper re-review |
* fix(exec): gate versioned inline interpreters * fix(exec): trim unsupported R inline flag * fix(exec): avoid r2 inline eval collision
* fix(exec): gate versioned inline interpreters * fix(exec): trim unsupported R inline flag * fix(exec): avoid r2 inline eval collision
Summary
Tightens strict inline-eval approval detection so additional interpreter forms cannot bypass the existing approval guard when interpreter executables are otherwise allowlisted.
Changes
-B,-E, and-R, and R/Rscript-eto the detector table.R --execdetector case after upstream/R CLI contract review.Validation
node scripts/run-vitest.mjs src/infra/command-analysis/inline-eval.test.ts src/node-host/invoke-system-run.test.ts— 2 files, 65 tests passed../node_modules/.bin/oxfmt --check --threads=1 src/infra/command-analysis/inline-eval.ts src/infra/command-analysis/inline-eval.test.ts src/node-host/invoke-system-run.test.tsgit diff --check.agents/skills/autoreview/scripts/autoreview --mode local— clean, no accepted/actionable findings.handleSystemRunInvokerun withstrictInlineEval=trueshowedpython3.13 -cdenied before execution (runCommandCalls: 0,SYSTEM_RUN_DENIED: approval required ... strictInlineEval mode) and an explicitallow-alwaysapproval ran once without persisting an allowlist entry (persistedAllowlistEntries: 0).Notes
Security-sensitive report details are tracked privately.
CHANGELOG.mdwas not updated.