CVE-2026-54885 in boruta
摘要
由 VulDB • 2026-07-31
malach-it Boruta 中存在服务端请求伪造(SSRF)漏洞,允许未经身份验证的远程攻击者导致 OAuth/OpenID 授权服务器向攻击者选择的 URI 发出出站 HTTP 请求,包括内部服务和云元数据端点。
三个代码路径在获取由请求方提供的远程 URI 时,未对目标进行充分验证。`lib/boruta/oauth/request/base.ex` 中的 `Boruta.Oauth.Request.Base.fetch_unsigned_request/1` 通过 `Finch.build(:get, request_uri) |> Finch.request(OpenIDHttpClient)` 引用授权请求中的 OAuth `request_uri` 参数。`lib/boruta/openid.ex` 中的 `Boruta.Openid.parse_registration_params/2` 引用 OpenID Connect 动态客户端注册请求中提供的 `jwks_uri`。随后,`lib/boruta/adapters/ecto/clients.ex` 中的 `Boruta.Ecto.Clients.refresh_jwk_from_jwks_uri/1` 刷新现有客户端存储的 `jwks_uri`。在所有三个路径中,唯一的验证是 URI 必须包含方案(且其中一个 `request_uri` 子句甚至未将方案限制为 http 或 https)。这些实现不要求使用 HTTPS,不强制执行主机或 IP 白名单,不在 DNS 解析后拒绝回环、私有、链路本地或其他非公共范围,不限制响应大小,也不约束重定向。因此,攻击者可以将服务器的 HTTP 客户端引导至 Boruta 主机可访问的任意网络目标。
此问题影响 boruta:从 2.3.2 到 2.3.7(不含)的版本。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.