Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

F-022 T3 follow-ups before T4: CLI uid isolation (M1), sign-out honesty (m1, m2), scope wording (m7)

已关闭
#331 10 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 1 天内回复

@Zamojski5 已经在做这个了。

开始于 2026年10月11日。

评估

这个 Issue 还没有评估数据。

描述

agent:review

Follow-up to #303 (F-022 T3, #278), from @Zamojski5's approving evaluation of 192a7f35 (https://github.com/ColdPhase/flux/pull/303). That approval holds only if M1, m1, m2 and m7 are fixed or tracked before T4 (#279, sign-in) lands. This issue tracks them, and it blocks #279's merge.

Must be resolved before #279 merges

  • M1. The CLI runs under the supervisor's uid. supervisor/process.ts:16 spawns the CLI as uid 1000, the same uid as the supervisor.
    • A compromised CLI could then read /proc/<supervisor>/environ (FLUX_RUNTIME_SLOT_SECRET). On ptrace_scope 0 it could also write /proc/<pid>/mem.
    • A supervisor patched that way could fake release, so the next owner inherits the old process and its /tmp.
    • Acceptance: the CLI runs under its own uid, or the supervisor is non-dumpable and the worker refuses slots where ptrace_scope is 0.
    • A probe as the CLI's uid then fails to open /proc/<supervisor>/mem for writing and to read /proc/<supervisor>/environ. A negative control shows the probe succeeds without the fix.
  • m1. Sign-out after the runtime is switched off. The egress allowlist is built from FLUX_AGENT_RUNTIME (egress/main.ts:12,16), so the documented "switch off, then purge/reset/clean" gets 403 on every logout CONNECT. forgetAll then reports signOutFailed:false.
    • Acceptance: sign-out reaches the vendor hosts during purge, reset and clean whatever the switch says, or the guide and the launcher require purging before switching off.
    • Either way, a failed or blocked logout is reported as failed. A check exercises off→purge.
  • m2. A skipped or missing sign-out reads as success. manager-port.ts:29 counts only failed/timeout. handlers.ts:117-124 skips logout on an unsafe binding directory, and not_installed is possible too.
    • Acceptance: skipped and not-installed logouts are reported as not signed out. Release logs out every signed-in CLI, as F-022 says.
  • m7. Scope and wording.
    • Open a tracked issue for the deferred ghcr.io/coldphase/flux-agent-runtime image and the release compose.
    • Fix the F-022 row in decisions.md ("installed by Anthropic's installer") and the plan's T3 bullets (lines 127 and 131) to match ai-modes.md as merged.

Tracked, to fix with T4 or record as accepted risks

  • m3: the socket test misses directory bind mounts (/var/run, /run:/host-run). Use an allowlist of bind sources in test_container_isolation.py and inspect.py.
  • m4: check_agent_runtime.sh step 5 uses the host's ip, which macOS lacks. Run it in a container.
  • m5: any signed-in account can bind a slot before sign-in, and sign-up is open. Bind when T4's sign-in starts, or record it as accepted.
  • m6: egress SNI isn't tied to the CONNECT host, and there is one global maxConnections. Record both as accepted risks, or add a per-slot cap.
  • m8: reconciliation race (reconcile.ts:40,45) and wipeBootId read before release. Low.
  • m9: the real install path through egress is never exercised. One run through runtime-install → egress → downloads.claude.ai.
  • Nits:
    • the 0056 header names reserved numbers that are on main, and a test file that doesn't exist;
    • ensure_runtime_secrets writes a temporary file holding secrets under the default umask;
    • the manager client reads the whole body before its 4 MiB check;
    • the account_label CHECK is weak.

Owner: claude-hubert (PelikanFix16), the author of #303 and T4. Evaluator: @Zamojski5.

主要语言
TypeScript
星标
3
派生
0
平均合并
22 小时 20 分钟
30 天内合并 PR
343

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

ColdPhase/flux 的其他 Issue

查看 ColdPhase/flux 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。