Skip to content

[chore] 残余低风险加固:错误响应路径脱敏与发布物完整性校验 #511

Description

@liujuanjuan1984

背景

对齐 codex-a2a #346(残余低风险加固:错误响应路径脱敏与发布物完整性校验)。opencode-a2a 安全审计 #499 已收口(#510 合入),但其拆解范围(#500-#504)未包含错误响应路径脱敏与发布物校验清单。

对照 codex-a2a #346 的实施(codex-a2a PR #353)对 opencode-a2a 逐一核查后确认:同类风险点仍存在,且当前无任何 open issue 跟踪(唯一 open issue 为 #451,与本项无关)。

证据(main @ 90f9136

  • src/opencode_a2a/execution/executor.py:_emit_error 直接把 message(调用方传入的 str(exc) / f"OpenCode error: {exc}" 等)写入客户端可见的 Task/SSE 消息,未做路径脱敏;execution/coordinator.py 的失败消息均经此出口。
  • src/opencode_a2a/jsonrpc/error_responses.pyadapt_jsonrpc_error 对 message、metadata 值(_stringify_metadata_value)、标准 JSON-RPC 错误码早退分支的 data、_build_context_detail 均未脱敏;build_http_error_body 的 message 未脱敏。
  • src/opencode_a2a/jsonrpc/application.py 未覆写 _generate_error_response:SDK 基类对裸异常以 InternalError(message=str(error)) 原样透出。
  • src/opencode_a2a/jsonrpc/handlers/*:多处 detail=str(exc) / InternalError(message=str(exc))(如 common.py、provider_discovery.py、session_queries.py、workspace_control.py),经上述未脱敏出口进入响应。
  • .github/workflows/publish.yml:Sync GitHub Release 仅上传 wheel/sdist,无 SHA256SUMS 或等价校验清单。

对照核查发现(与 codex-a2a #346 修复清单逐项对照)

  • 存在:executor _emit_error 直出异常文本;adapt_jsonrpc_error message/metadata/标准错误码 data 未脱敏;build_http_error_body 未脱敏;裸异常兜底未脱敏;各 handler detail=str(exc);发布物缺 SHA256SUMS。
  • 不存在(较 codex-a2a 修复前更稳):工具错误映射 execution/tool_error_mapping.py 对已知异常类型返回稳定错误串与结构化 error_code/error_meta,不直出 str(exc)
  • 不适用:opencode-a2a 无本地 exec/subprocess runtime(shell 会话为远端 provider 能力),无对应 exec-runtime 失败消息面。
  • 有意的维护差异:opencode-a2a 审计交付物按 [chore] 对 opencode-a2a 执行系统安全审计(对齐 codex-a2a #331) #499 决策落 docs/security-architecture.md + issue 记录,不使用 docs/inspection/

补充观察(独立相邻项,建议单独评估,不在本 issue 实施范围)

execution/upstream_error_translator.py 会把远端响应文本(extract_upstream_error_detail,最长 512 字符)拼入客户端可见消息。这属于远端内容信任面(对齐 codex-a2a #343 的类别),与本地路径泄露不同类;建议另行开 issue 评估,本 issue 仅在报告中登记。

验收标准

  • 错误响应文本统一脱敏(绝对路径替换为占位符),覆盖 executor _emit_erroradapt_jsonrpc_error(message/metadata/标准错误码 data)、build_http_error_body、裸异常兜底分支
  • 发布物附 SHA256SUMS(publish.yml 生成并上传)
  • docs/security-architecture.md 记录错误脱敏与发布完整性策略及边界

基线快照

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions