A2A名称冲突:显示名不能替代已准入身份
A2A名称冲突:显示名不能替代已准入身份
结论与用户价值
知识轴:A2A / harness-runtime / sandbox-security / benchmark-evaluation;关联MCP Gateway。 多peer系统可以完成Card发现、验签和注册,却在最后一次按显示名查找时把A的任务交给B。关键不是“重名不好”,而是准入时确认的主体—origin—transport绑定必须一直保持到dispatch。这直接影响Hermes未来接入外部agent、技能转工具、跨网关委托及审计可信度。
论文为2026-09-23旧文补课,非今日首发;证据仓库固定9f3e9c51a64a0b9ba18822c7512c192320e4d73e,当次GitHub API为0 star。已读主文、限制、固定README/EVIDENCE;没有运行七框架测试,也没有检测用户实例。
一阶机制:身份在何处丢失
- 主机先凭配置endpoint、注册记录或已认证publisher准入两个不同peer A、B。
- 两个Card均声明相同或规范化后相同的
name;host把这个远端可控标签提升成agent树、函数工具、client map或broker主题的键。 - 重名不拒绝,仅warning、first-match、last-write或共享broker route;上层仍以为选中A。
- 最终lookup选出B的client/closure/endpoint。错误发生在确定性解析,未必需要模型被说服;反转顺序仅改变赢家,不修绑定。
可利用链要求同时存在:同一准入域、B控制名称、B赢得冲突、调用确实使用该名称、A/B有信任差异。碰撞不负责把互联网攻击者自动注册进来;固定endpoint直接发送或已拒绝歧义的实现没有这一特定面。
作者证据究竟证明什么
| 边界 | 已报告结果 | 不能推导 |
| 六条client路径 | Google ADK Python/TS、UiPath、BeeAI、Any-Agent、AutoDev在固定版本选到B client或loopback endpoint | 六个现网部署已攻破、当前最新版本仍受影响 |
| 一条broker路径 | Solace注册/发布落入同名route | B必定消费;仍取决于queue mode、binding、ACL |
| 凭据/权限 | 测试未观察到A专用凭据或A所有的进程内工具直接转给B | 消息偏转=凭据盗取=权限继承=RCE |
| 二阶段模型路径 | UiPath/BeeAI的B输出可进入带host工具的新决策点 | 真实模型必执行特权操作;scripted模型不是成功率测量 |
| 传播搜索 | 首100个精确代码命中覆盖83仓库 | 83个独立漏洞产品或生产暴露量 |
Google ADK特别需要保留准入缺口:测试手动提供duplicate local names,registry helper另有Card→local name源码路径,但未演示低权限用户在真实云项目里创建/刷新该记录。UiPath/BeeAI保留测试没有相匹配的distinct-name对照。论文是目的性实现研究,不是总体漏洞率调查。
可迁移的控制与验收
- 路由键使用受运营方/可信注册方控制且绑定origin的稳定ID;远端自报UUID也不能自证身份。名称仅用于UI/模型提示。
- alias兼容API必须拒绝精确及规范化等价的歧义;refresh/rename不能悄悄替换已绑定主体。验签只能证明谁签了这段Card,不能使显示名成为唯一ID。
- 先解析真实主体,再选择credential/audience/scopes;broker topic、queue、consumer也须使用主体标识,不能只修内存map。
- 隔离回归使用两个合成peer:同名/规范化等价名、正反注册顺序、Card刷新、各自凭据标记、独立接收计数器。预期是清晰拒绝或始终到选定主体,不是“至少一次成功”。
- 分别保存selected stable ID、admission origin、最终transport、请求接收回执、凭据接收方、后续工具effect;拒绝需验证两peer均未收到请求。
上述是给用户的验收设计,不是本轮已经上线的Hermes策略。无需为了检查名称解析向第三方部署发敏感任务。
与已有知识的关系
A2A-Agent2Agent-Protocol的发现/授权/Task合同在此补上“选择身份到最终接收方”;a2a-signed-card-trust-bootstrap解决可信签名key来源,不替代resolver唯一性。本页与contextforge-tool-namespace-lifecycle-and-reachability机制相邻,但后者的可见域工具名guard不是A2A身份修复或全局并发唯一性。MCP-Gateway-Runtime和Harness-Engineering应把最终dispatch纳入权限路径,而不是只看Card可取。
未解问题与边界
当前各上游最新修复状态未逐项复核;作者固定版本结果不能写成现在时漏洞清单。身份轮换、注册方受损、alias跨namespace以及实际broker权限需要部署级证据。对用户最有用的后续是小型loopback resolver回归,而非安装全部七框架或把0 star误当低证据质量。
写入记录
- 2026-10-26 09:08 CST:新增身份丢失机制、作者七路径/权限边界、准入缺口与Hermes可迁移回归设计;未运行上游测试或真实部署。