安全分类 是做什么的?
在审查 OpenClaw 安全公告、草案或 GHSA 报告时使用。
目标:维护者高置信度分类,避免误关真实问题或引入不必要的回归。
关闭标准
仅在以下任一情况成立时关闭:
- 与现有公告或已修复的问题重复
- 针对已发布行为无效
- 超出
SECURITY.md范围 - 在任何受影响的版本/标签发布之前已修复
不要仅因为 main 分支已修复就关闭。如果最新的已发布标签或 npm 版本受影响,请保持开放状态,直到以正确的状态发布或公开。
必读内容
在回答之前:
- 阅读
SECURITY.md。 - 使用
gh api /repos/openclaw/openclaw/security-advisories/<GHSA>读取 GHSA 正文。 - 检查确切的受影响代码路径。
- 验证发布状态:
git tag --sort=-creatordate | headnpm view openclaw version --userconfig "$(mktemp)"git tag --contains <fix-commit>- 如果需要:
git show <tag>:path/to/file
- 搜索规范重叠:
- 已发布的 GHSA
- 较早修复的缺陷
SECURITY.md中已涵盖的相同信任模型类别
审查方法
对于每个公告,决定:
关闭保持开放保持开放但缩小范围
当涉及评论/关闭时,默认一次处理一个公告:
- 审查恰好一个 GHSA。
- 首先打印 GHSA URL。
- 总结决策和证据以供讨论。
- 起草一条维护者可直接发布的评论。
- 仅将该评论复制到剪贴板。
- 停止并等待 Peter 发布/讨论,然后再处理下一个 GHSA。
除非 Peter 明确要求批量操作,否则不要批量输出多条关闭评论。
按以下顺序检查:
- 信任模型
- 先决条件是否已处于可信主机/本地/插件/操作者状态中?
SECURITY.md是否明确将该类别列为范围外或仅作为加固项?
- 已发布行为
- 该缺陷是否存在于最新的已发布标签或 npm 版本中?
- 它是否在发布前就已修复?
- 利用路径
- 报告是否展示了真实的安全边界绕过,而非仅仅提示注入、本地同用户控制或辅助级别的语义问题?
- 如果数据仅在被
SECURITY.md列为可信工作空间内存的文件之间移动,请不要将“注入标记”单独视为安全缺陷。 - 在这种情况下,仅在保留预期内存工作流程的前提下,将清理视为可选的加固措施。
- 功能权衡
- 如果某项加固更改会降低预期的用户功能,请在提出之前明确指出。
- 优先采用保留用户工作流程的修复,而非默认拒绝的回归,除非安全边界要求如此。
- 加固后续
- 即使 GHSA 应关闭,也要询问是否可以进行一项狭窄的加固更改,以减少误操作风险,而不改变文档记录的信任边界。
- 将加固与漏洞状态分开。措辞应为“GHSA 关闭不要求此更改,但值得考虑”。
- 仅在加固方案具体、风险低且保留预期的维护者/操作者工作流程时才提出。
- 如果加固需要更改产品或安全模型,应明确说明,并且不要暗示这是关闭所需的修复。
回应格式
在准备维护者可用的关闭回复时:
- 首先打印 GHSA URL。
- 然后起草一条维护者可以发布的详细回复。
- 包括:
- 关闭的确切原因
- 确切的代码引用
- 确切的已发布标签/版本事实
- 修复来源或规范重复的 GHSA(如适用)
- 仅在值得且保留功能时附加强化说明
语气坚定、具体、非防御性。
公开措辞卫生
- 将原始提交哈希、PR 标题/编号和修复机制摘要保留在公共公告文本之外。仅使用已打补丁的版本/发布字段。
- 将确切的提交 SHA、PR 和实现说明保留在内部注释和验证文件中。
- 对于加固/不发布的结果,不要添加利用细节、“由……修复”文本或“修复提交”部分。感谢报告者,保留贡献,说明
SECURITY.md的边界,并明确说明该 GHSA 将被关闭且不发布。 - 对于已发布的 CVE/GHSA 文本,优先使用包含已修复版本的
### 已打补丁的版本。除非 Peter 明确要求,否则不要解释补丁的工作原理。 - 除非 Peter 明确要求,否则不要将 GHSA ID 写入变更日志和发布说明中。
讨论模式
当 Peter 手动发布 GHSA 评论时,使用以下流程:
- 显示 URL。
- 给出简洁的裁决(
关闭、保持开放或保持开放但缩小范围)。 - 列出最有力的证据要点。
- 将任何可选的加固后续与关闭原因分开说明。
- 使用
pbcopy复制建议的评论正文。 - 在回复该公告后结束。直到 Peter 说继续,再处理下一个公告。
如果 GitHub API 无法对私有公告发布评论,请说明一次,然后继续使用剪贴板/UI 粘贴。
剪贴板步骤
在为当前公告起草最终回复正文后,复制它:
pbcopy <<'EOF'
<最终回复>
EOF
告知用户剪贴板现在包含该公告的建议回复。
常用命令
gh api /repos/openclaw/openclaw/security-advisories/<GHSA>
gh api /repos/openclaw/openclaw/security-advisories --paginate
git tag --sort=-creatordate | head -n 20
npm view openclaw version --userconfig "$(mktemp)"
git tag --contains <commit>
git show <tag>:<path>
gh search issues --repo openclaw/openclaw --match title,body,comments -- "<terms>"
gh search prs --repo openclaw/openclaw --match title,body,comments -- "<terms>"
网络分类器中断
对于因网络分类器中断而被允许的防御性工作,仅针对该受限任务使用经批准且可用的 Daybreak Blue 路线,然后恢复之前的模型。保留经批准的身份、范围、权限、沙箱和审查门控。切勿切换模型以绕过访问拒绝、不允许的请求或拒绝的工具操作;如果该路线也拒绝,则停止并报告。遵循 OpenAI 指南 进行批准的模型访问。
决策注释
- “在 main 上已修复但未发布”通常不构成关闭理由。
- “需要攻击者控制受信任的本地状态”通常属于范围外。
- “同一主机、同一用户进程已可读写本地状态”通常属于范围外。
- “受信任的工作空间内存提升/重新索引受信任的工作空间内存”通常属于范围外,除非它跨越了文档记录的边界。
- “辅助函数的行为与文档记录的配置语义不同”通常无效。
- 如果只是严重性错误但缺陷真实存在,则保持开放并在回复中缩小影响范围。