host
|
24517d922b
|
host: 验测命令白名单 + 结构化 verify_argv(shell=True 收口)
方案 A(白名单)+ 方案 B-lite(结构化 argv)双轨:
- 分类器 classify_verify_command:POSIX 引号状态机扫描,
simple(无 shell 形态)/ simple-env(仅 VAR=val 前缀)走
shell=False,shell(白名单内形态)走唯一的 shell=True 门,
denied(嵌套 shell、命令替换、未列首词、绝对/越界重定向、
多行等)拒绝执行并审计,返回 126 按验测失败处理。
- 验测线 shell=True 从 4 处收口到 1 处(run_gated_verify),
run_verify 与轮次验收 2 处全部改走该门;bandit High 4->2
(nosec 0,未做任何压制)。
- verify_argv:merge/goal/goal-resume 的 --verify-argv
(REMAINDER,须放最后;空数组报 usage 退出,不静默跳过),
任务记录 verify_argv,goal-resume 原样重放;goal-resume
的 max_rounds==0 钳制计入 argv 形态。
- verify-audit:扫描 state 旧任务并分类;--apply 只转 simple,
shell/denied 只列清单;审计本身不启动 codex server。
- notify_failure 不动:算子自有配置 + 插值已 shlex.quote
(main 已有),白名单不适用,见 PR 正文定性表。
测试:新增 tests/test_host_shell_policy.py 30 项(含 naive
shlex.split 破坏回归锁、拒绝不执行标记文件、merge 回滚、
goal unmet/argv 达标、CLI REMAINDER/空数组、verify-audit
端到端);顶层 135、deploy 39、cloud 1430(skipped 4)全过。
|
2026-11-03 02:49:26 +00:00 |
|