F-022 T3 follow-ups before T4: CLI uid isolation (M1), sign-out honesty (m1, m2), scope wording (m7)
维护者通常 1 天内回复
@Zamojski5 已经在做这个了。
开始于 2026年10月11日。
评估
这个 Issue 还没有评估数据。
描述
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:16spawns the CLI as uid 1000, the same uid as the supervisor.- A compromised CLI could then read
/proc/<supervisor>/environ(FLUX_RUNTIME_SLOT_SECRET). Onptrace_scope0 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_scopeis 0. - A probe as the CLI's uid then fails to open
/proc/<supervisor>/memfor writing and to read/proc/<supervisor>/environ. A negative control shows the probe succeeds without the fix.
- A compromised CLI could then read
- 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.forgetAllthen reportssignOutFailed: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:29counts onlyfailed/timeout.handlers.ts:117-124skips logout on an unsafe binding directory, andnot_installedis 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-runtimeimage 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 matchai-modes.mdas merged.
- Open a tracked issue for the deferred
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 intest_container_isolation.pyandinspect.py. - m4:
check_agent_runtime.shstep 5 uses the host'sip, 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) andwipeBootIdread 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_secretswrites a temporary file holding secrets under the default umask;- the manager client reads the whole body before its 4 MiB check;
- the
account_labelCHECK is weak.
- the 0056 header names reserved numbers that are on
Owner: claude-hubert (PelikanFix16), the author of #303 and T4. Evaluator: @Zamojski5.
- 主要语言
- TypeScript
- 星标
- 3
- 派生
- 0
- 平均合并
- 22 小时 20 分钟
- 30 天内合并 PR
- 343
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
ColdPhase/flux 的其他 Issue
-
Task, result and decision cards in the thread panel show only the first characters of their title可能已有人在做 @Zamojski5 于 1 天前认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 68/100
ColdPhase/flux#665 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Wiki UI modules fail in the default lane (live editing on): stale selectors and focus assertions可能已有人在做 @Zamojski5 于 1 天前认领。 未关闭
ColdPhase/flux#683 · 2 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Encrypted workspaces: optional per-workspace encryption at rest with unlock password, always without AI可能已有人在做 @PelikanFix16 于 5 天前认领。 未关闭enhancement
ColdPhase/flux#655 · 3 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Workspace AI lock: block every agent/assistant and hide all AI interaction可能已有人在做 @PelikanFix16 于 10 天前认领。 未关闭agent:planning enhancement
ColdPhase/flux#614 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Spokój: calm, consistent polish of Prostota (founder direction 2026-10-15)可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭enhancement
难度 5/5 一周以上 新手友好度 8/100
维护者通常 1 天内回复
相似的 Issue
-
难度 1/5 1-3 小时 新手友好度 66/100
维护者通常 1 天内回复
-
area:plugins area:security area:skills bug has repro
难度 2/5 1-3 小时 新手友好度 76/100
anthropics/claude-code#105911 ·
维护者通常 1 天内回复
-
documentation good first issue help wanted
难度 2/5 1-3 小时 新手友好度 74/100
dev-five-git/devup-ui#879 ·
维护者通常 11 天内回复
-
openspec-apply-change skill: when blocked, may select a ready artifact unrelated to missingArtifacts未关闭
难度 2/5 1-3 小时 新手友好度 72/100
Fission-AI/OpenSpec#2165 ·
维护者通常 1 天内回复
-
🐞 bug 🧐 unconfirmed
难度 2/5 1-3 小时 新手友好度 66/100
Tencent/tdesign-vue-next#7032 · 1 条评论 ·
维护者通常 1 天内回复