漏洞概述 Trino 动态地从传入请求上下文中构建 OAuth2/OIDC 回调 URI,并直接将其作为 OAuth 传递,而没有对配置的规范回调 URI 进行服务器端验证。如果攻击者能够影响外部观察到的请求 URI(例如通过 、 、 或反向代理配置),Trino 可能会生成一个 指向攻击者控制的源。如果身份提供者接受此修改后的 ,授权代码可以被发送到攻击者控制的回调端点。 影响范围 Trino 版本:476 影响:如果身份提供者接受攻击者影响的 ,受害者完成 OAuth 登录后,授权代码可能会被发送到攻击者控制的回调端点。根据流程,攻击者可能能够将代码和签名状态转发回 Trino 的回调端点,并使用其配置的客户端凭据交换代码。 修复方案 Trino 不应仅从不信任的请求上下文中派生 OAuth 回调 URI。它应该: 1. 要求配置的规范外部 OAuth 回调 URI,或 2. 验证动态构建的回调 URI 是否与精确的允许列表(包括方案、主机、端口和路径)匹配。 无效或不信任的转发主机/协议/前缀值不应允许影响 OAuth 。 受影响代码 Web UI OAuth 挑战 CLI / 外部身份验证令牌交换 转发前缀处理