docs(audit): reachability grading for findings #1-#43 (who actually hits each one)
This commit is contained in:
1 file changed
+55
@@ -45,6 +45,61 @@ IPv6-only 接入(`ssh -6 -i ~/.ssh/id_ed25519 root@fdb2:2c26:f4e4:0:21c:42ff:f
|
|||||||
| 14 | controller-runtime 日志噪音 | ✅ 修复:SetLogger 接 slog(`a415246`) |
|
| 14 | controller-runtime 日志噪音 | ✅ 修复:SetLogger 接 slog(`a415246`) |
|
||||||
| 15 | reaper 启用未演练 | ✅ 已演练(见"第二日"节;CronJob 仍 `suspend=true` 防误删) |
|
| 15 | reaper 启用未演练 | ✅ 已演练(见"第二日"节;CronJob 仍 `suspend=true` 防误删) |
|
||||||
|
|
||||||
|
## 可达性分级(#1–#43)——这些缺陷真实使用中到底谁能踩到
|
||||||
|
|
||||||
|
回应质疑"是不是全在测边界条件 / 只有内部 hook 才能触发":
|
||||||
|
|
||||||
|
- **hook 的边界**:演练中使用的内部手段(读服务端日志取 OTP 码、service token 打内部面代 approve、本地 SMTP sink、tmux 驱动 TUI)只是**测试仪表**——代替"真实收邮件 / 键盘敲击 / 操作台点击";触发路径本身是公开路径,真实用户做同一动作走同一段代码。真正**本环境不可复现**的只有 #28(无真实 CF 账号,仅 httptest 复刻),另有 #4/#5/#14 属工具/卫生级(无运行时触发面)。
|
||||||
|
- **分级口径**:① 日常=普通使用或默认安装下即会踩到;② 运维=升级/重启/故障恢复/磁盘满/删资源/闲置回收等真实运维动作会踩到;③ 窗口=需要并发或特定状态时序,真实但概率低;④ 工具=仅工具判定/审查;决策=非缺陷(评估/演练项)。
|
||||||
|
|
||||||
|
| # | 真实触发路径(一句话) | 分级 |
|
||||||
|
|---|------------------------|------|
|
||||||
|
| 1 | 恢复失败后 10 分钟内重试(必然的恢复动作)→ 202 但 Job 不动 | ② |
|
||||||
|
| 2 | 默认安装下第一次点「备份」→ Job FailedMount(felis-config 缺在 minecraft ns) | ① |
|
||||||
|
| 3 | #1 修复所需 RBAC(单独不产生用户可见行为) | ② |
|
||||||
|
| 4 | gofmt/staticcheck 漂移 + CI 门禁缺失 | ④ |
|
||||||
|
| 5 | 依赖漏洞(govulncheck 判定可达):需特定输入 | ④ |
|
||||||
|
| 6 | 默认安装即踩:备份/恢复恒 503、回收链无旗标不可启用 | ① |
|
||||||
|
| 7 | 任何异步操作(备份/构建)想查结果:无端点(功能缺口) | ① |
|
||||||
|
| 8 | 磁盘打满事故链(控制面被逐 → 镜像 GC → 全体 ImagePullBackOff) | ② |
|
||||||
|
| 9 | 非缺陷:升级策略评估 → runbook | 决策 |
|
||||||
|
| 10 | 非缺陷:备份语义评估 → 文档化 | 决策 |
|
||||||
|
| 11 | PG 掉线期间任何会话校验 → 401 误导 | ② |
|
||||||
|
| 12 | 每次起服:就绪感知滞后 | ① |
|
||||||
|
| 13 | 首次安装向导:长 URL 截断 | ① |
|
||||||
|
| 14 | operator 日志噪音(卫生项) | ④ |
|
||||||
|
| 15 | 流程项:reaper 启用补演练 | 决策 |
|
||||||
|
| 16 | 邮箱登录主路径:错码/重放 → 500、5 次锁定失效 | ① |
|
||||||
|
| 17 | 面板 op-login pending 列表字段缺失 | ① |
|
||||||
|
| 18 | 绑定码并发兑换(双击/双端即可)→ 部分 500 | ③ |
|
||||||
|
| 19 | 按文档启用回收 → CronJob 永远无法调度 | ② |
|
||||||
|
| 20 | 两账号验证同一邮箱 → 登录码归属不定(安全) | ③ |
|
||||||
|
| 21 | 面板改任一用户邮箱 → verified 未清、码寄旧地址 | ① |
|
||||||
|
| 22 | 全新安装 owner 层不可达(用户管理全路由) | ① |
|
||||||
|
| 23 | (a) 并发认领两服可双双过配额;(b) PATCH 任意服资源 → storage 缓存清零 | ①(a=③) |
|
||||||
|
| 24 | 有主服闲置 12–15d:警告信从不投递、静默回收 | ② |
|
||||||
|
| 25 | 启用空载停机后等超时:三层复合缺陷永不生效 | ② |
|
||||||
|
| 26 | 运维删/轮换 RCON Secret → 永久锁死至人工删 pod | ② |
|
||||||
|
| 27 | 曾长启动的服 + 任意 pod 波动 → 误判 StartupTimeout | ② |
|
||||||
|
| 28 | 重跑 cfsetup 且线上有旧策略 → fail-closed 被顶替;⚠无真实 CF 账号,仅 httptest | ④ |
|
||||||
|
| 29 | 装后改 SMTP(configure email)→ 复制链从未生效 | ② |
|
||||||
|
| 30 | 对不存在/刚被删的用户 id 操作 → 500 而非 404 | ③ |
|
||||||
|
| 31 | 真实 owner 打开 /admin/builds 被 mock 残留误判 | ① |
|
||||||
|
| 32 | 新浏览器首访 /admin/builds 播种两个假 404 | ①(轻) |
|
||||||
|
| 33 | 禁用/已删账号重走邮箱登录门 → 可复活(安全) | ① |
|
||||||
|
| 34 | 同族:死账号游戏内身份面仍存活 | ① |
|
||||||
|
| 35 | 任何真实服务器保存过一次后:所有备份/fileread 必败 | ① |
|
||||||
|
| 36 | 任何构建失败的提交者永远看不到结果 | ① |
|
||||||
|
| 37 | 管理端 fleet:login/lobby 行全是死操作 | ①(轻) |
|
||||||
|
| 38 | felis manifests 输出残留过期指导 | ②(文档) |
|
||||||
|
| 39 | 断玻璃 reset owner 用非在位名 → 铸第二 owner 永不可清 | ② |
|
||||||
|
| 40 | 断玻璃 add operator 撞名 → 裸 SQLSTATE | ② |
|
||||||
|
| 41 | 断玻璃 Sync 选系统服 → 裸内部错误 | ② |
|
||||||
|
| 42 | 对无世界盘服备份/恢复 → 202 后静默卡 30 分钟 | ② |
|
||||||
|
| 43 | #42 配套:409 一刀切文案 | ②(轻) |
|
||||||
|
|
||||||
|
统计:① 17 | ② 16 | ③ 3+#23(a) | ④ 4 | 决策 3 = 43。第三批构建链另有 3 处未编号修复(Job requests 超小节点上限 → 永远 Pending、Kaniko chown、Trivy DB egress 被锁)——均属 ①/②。
|
||||||
|
|
||||||
## 已验证事实(正向清单)
|
## 已验证事实(正向清单)
|
||||||
|
|
||||||
- 安装→hook 发码→Owner 绑定→passkey(虚拟认证器)→面板管理员全链路 ✅
|
- 安装→hook 发码→Owner 绑定→passkey(虚拟认证器)→面板管理员全链路 ✅
|
||||||
|
|||||||
Reference in new issue
Block a user