首页 网络安全 正文

Trino OAuth2/OIDC开放重定向CVE-2026-16336

Trino(原 PrestoSQL)是开源分布式 SQL 查询引擎,主打跨多种数据源实时查询分析,独立维护,更新迭代更快,生态插件更丰富。

一、基本情况

Trino适合企业统一数据查询网关、数仓联邦查询、实时报表、跨库联合统计;替代多套数据库客户端,一站式查询公司各类数据存储。

Trino OAuth2/OIDC开放重定向CVE-2026-16336

Trino完整支持 ANSI 标准 SQL,视图、子查询、窗口函数、JOIN 多表关联语法齐全,采用协调器 + 工作节点集群架构并行执行查询。

栋科技漏洞库关注到Trino 中的OAuth2OIDC 开放重定向漏洞,该漏洞现在已经被追踪为CVE-2026-16336,漏洞的CVSS 3.X评分4.3。

二、漏洞分析

CVE-2026-16336是Trino漏洞,可能导致,攻击者通过伪造请求头可使 redirect_uri 指向攻击者控制的回调端点,构成开放重定向风险。

Trino 在 OAuth2/OIDC 授权码流程中通过 io.trino.server.ExternalUriInfo

从请求上下文(Host、X-Forwarded-Host、X-Forwarded-Proto、X-Forwarded-Prefix 代理头)动态拼装 redirect_uri 并直接交给 IdP,

受影响版本中,io.trino:trino-serverio.trino.server.ExternalUriInfo 构造函数,

通过 @Context HttpHeaders.getHeaderString(X_FORWARDED_PREFIX) 读取请求头并写入 forwardedPrefix 字段,

baseUriBuilder()uriInfo.getBaseUriBuilder()(其 scheme/host/port 来自请求上下文)上调用 

.replacePath(forwardedPrefix).replaceQuery("")absolutePath(CALLBACK_ENDPOINT)

把未经白名单或精确匹配的请求源信息拼入 OAuth2 ,

回调 URI;OAuth2TokenExchangeResource.initiateTokenExchange() 与 OAuth2WebUiAuthenticationFilter.filter()

在启动 OAuth2 challenge 时把该 URI 透传给 service.startOAuth2Challenge(callbackUri, ...)

使 redirect_uri 暴露给可被外部头操纵的来源,

若 IdP 接受宽松 redirect_uri 匹配则授权码被重定向到攻击者端点并可能被回放到 Trino 回调端换取 token。

三、影响范围

Trino ≤ 483

四、修复建议

Trino> 483

五、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接