删除从可信伙伴接收的值的语义重新验证

作者: thallgren创建于 2026年8月10日更新于 2026年8月10日
标签v2

客户端侧 ### `pkg/client/k8s/x509_token.go` — 对管理器的 X509 身份验证响应的三项检查 1. 缓存过期限制,其注释中指出不信任: `x509TokenSourceMaxTTL` 存在"以便不良的管理器不能发行在未来很久的时间内缓存的令牌"。令牌只会被呈现给同一管理器;信任管理器提供的过期时间(减去现有的安全间隔),并删除限制。 2. 对响应体明确的大小限制拒绝:仅有 `io.LimitReader` 是结构性读取限制,但代码特意读取 limit+1 个字节,以便在任何异常情况下以"管理器 X509 身份验证响应超出 N 个字节"来拒绝。使用普通限制进行读取,并在任何异常情况下让 JSON 解析器结构性失败。 3. 在协议自身的错误通道(resp.Error)已被查询后,一个指责为空令牌的检查("管理器 X509 身份验证响应未携带令牌")。一个空令牌将简单地在下一个 RPC 中产生一个正常的 "Unauthenticated"。 移除此检查;版本门槛在几行前面"被绕过"。管理器的响应足够可信,可以在未加保护的情况下索引 as.Agents[0]。 ### `pkg/client/userd/trafficmgr/ingest.go` — `ingest()` 检查管理器是否"遵守"节点代理模式 成功执行 `EnsureAgent` 后,客户端验证 `ai.NodeAgent` 是否与请求的值匹配,并如果不匹配则失败,以"traffic-manager 未遵守节点代理模式"为原因。注释中甚至假设了几行前的版本门槛"被绕过"。同一响应足够可信,可以在未加保护的情况下索引 as.Agents[0]。删除此检查;版本门槛是机制,管理器的响应是权威性的。 ### `pkg/client/rootd/intercept_shortcuts.go` — …

内容来源: telepresenceio/telepresence