CVE-2026-40969:Spring gRPC 将 AuthenticationException 消息返回给远程客户端
低危 | 2026年4月28日 | CVE-2026-40969
描述
Spring gRPC 在处理服务端 AuthenticationException 时,会将每一个异常的原始消息返回给未经认证的远程调用方,并显示在 gRPC 状态描述中。攻击者可通过这些返回信息了解认证失败的具体原因,从而获取与认证流程、校验规则或失败细节相关的信息,这些信息可能被用于后续攻击尝试。
该问题的主要风险并不在于直接获取系统权限,而在于错误信息暴露过多。认证失败时,服务端通常应向客户端返回较为通用的失败提示,而不应暴露内部异常原文。如果异常内容中包含用户状态、认证方式、令牌校验细节、接口限制规则或其他内部判断逻辑,攻击者就可能据此调整请求方式,进一步探测系统边界。
受影响的 Spring 产品和版本
受影响产品为 Spring gRPC,涉及以下版本:
● 1.0.0 - 1.0.2
● 更早且已停止支持的版本同样受到影响
缓解措施
受影响版本的用户应升级到对应的修复版本。升级后,认证异常信息返回逻辑会得到修正,降低未经认证客户端获取内部认证失败细节的风险。
无需采取额外缓解措施。建议受影响用户尽快升级至修复版本,并在升级后完成认证失败、匿名访问、无效凭据、过期令牌等场景的基础验证。
处理建议
建议开发和运维团队先确认项目中是否使用 Spring gRPC,并检查依赖版本是否处于 1.0.0 到 1.0.2 范围内。如果命中受影响版本,应尽快升级到 1.0.3。
同时,应检查 gRPC 接口的错误返回策略,避免将服务端原始异常、堆栈信息、认证细节或内部字段直接暴露给客户端。对于认证失败类场景,建议统一返回通用错误信息,并将详细原因仅记录在受控的服务端日志中。
如果相关接口已暴露给外部系统或跨团队调用方,建议结合日志排查是否存在大量认证失败、异常参数试探或重复调用行为。对于涉及敏感业务的服务,应同步检查接口鉴权、调用频率限制和日志访问权限。