CVE-2026-54885: CWE-918 Server-Side Request Forgery (SSRF) in malach-it boruta
Server-Side Request Forgery vulnerability in malach-it Boruta allows an unauthenticated remote attacker to cause the OAuth/OpenID authorization server to issue outbound HTTP requests to attacker-chosen URIs, including internal services and cloud metadata endpoints. Three code paths fetch remote URIs supplied by the requester without sufficient validation of the target. Boruta.Oauth.Request.Base.fetch_unsigned_request/1 in lib/boruta/oauth/request/base.ex dereferences the OAuth request_uri parameter from the authorization request via Finch.build(:get, request_uri) |> Finch.request(OpenIDHttpClient). Boruta.Openid.parse_registration_params/2 in lib/boruta/openid.ex dereferences the jwks_uri supplied in an OpenID Connect dynamic client registration request. Boruta.Ecto.Clients.refresh_jwk_from_jwks_uri/1 in lib/boruta/adapters/ecto/clients.ex later refreshes the stored jwks_uri for an existing client. In all three paths the only validation is that the URI parses with a scheme (and one of the two request_uri clauses does not even restrict the scheme to http or https). The implementations do not require HTTPS, do not enforce a host or IP allowlist, do not reject loopback, private, link-local, or other non-public ranges after DNS resolution, do not cap response size, and do not constrain redirects. An attacker can therefore steer the server's HTTP client at arbitrary network targets reachable from the Boruta host. This issue affects boruta: from 2.3.2 before 2.3.7.
AI Analysis
Technical Summary
This SSRF vulnerability in malach-it Boruta affects versions from 2.3.2 before 2.3.7. Three distinct code paths accept remote URIs from unauthenticated requests without adequate validation: the OAuth request_uri parameter, the jwks_uri in OpenID Connect dynamic client registration, and the refresh of stored jwks_uri for existing clients. The server does not enforce HTTPS, host or IP allowlists, or reject private, loopback, or link-local addresses after DNS resolution. It also does not limit response size or redirects. Consequently, an attacker can coerce the server to send HTTP requests to arbitrary network targets accessible from the Boruta host, potentially exposing internal resources.
Potential Impact
An unauthenticated attacker can exploit this SSRF vulnerability to make the Boruta authorization server send HTTP requests to attacker-chosen URIs, including internal network services and cloud metadata endpoints. This may lead to unauthorized information disclosure or further internal network attacks depending on the network environment and accessible services. The vulnerability does not require user interaction or privileges.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. No official fix or patch has been documented as of the provided data. Until a patch is available, restrict network access to the Boruta server to trusted networks only and monitor for unusual outbound HTTP requests. Avoid exposing Boruta instances to untrusted networks. Follow vendor advisories for updates on remediation.
CVE-2026-54885: CWE-918 Server-Side Request Forgery (SSRF) in malach-it boruta
Description
Server-Side Request Forgery vulnerability in malach-it Boruta allows an unauthenticated remote attacker to cause the OAuth/OpenID authorization server to issue outbound HTTP requests to attacker-chosen URIs, including internal services and cloud metadata endpoints. Three code paths fetch remote URIs supplied by the requester without sufficient validation of the target. Boruta.Oauth.Request.Base.fetch_unsigned_request/1 in lib/boruta/oauth/request/base.ex dereferences the OAuth request_uri parameter from the authorization request via Finch.build(:get, request_uri) |> Finch.request(OpenIDHttpClient). Boruta.Openid.parse_registration_params/2 in lib/boruta/openid.ex dereferences the jwks_uri supplied in an OpenID Connect dynamic client registration request. Boruta.Ecto.Clients.refresh_jwk_from_jwks_uri/1 in lib/boruta/adapters/ecto/clients.ex later refreshes the stored jwks_uri for an existing client. In all three paths the only validation is that the URI parses with a scheme (and one of the two request_uri clauses does not even restrict the scheme to http or https). The implementations do not require HTTPS, do not enforce a host or IP allowlist, do not reject loopback, private, link-local, or other non-public ranges after DNS resolution, do not cap response size, and do not constrain redirects. An attacker can therefore steer the server's HTTP client at arbitrary network targets reachable from the Boruta host. This issue affects boruta: from 2.3.2 before 2.3.7.
CVSS v4.0
Score 6.9medium
Affected software
malach-it
boruta
malach-it
boruta
cpe:2.3:a:malach-it:boruta_auth:*:*:*:*:*:*:*:*Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
This SSRF vulnerability in malach-it Boruta affects versions from 2.3.2 before 2.3.7. Three distinct code paths accept remote URIs from unauthenticated requests without adequate validation: the OAuth request_uri parameter, the jwks_uri in OpenID Connect dynamic client registration, and the refresh of stored jwks_uri for existing clients. The server does not enforce HTTPS, host or IP allowlists, or reject private, loopback, or link-local addresses after DNS resolution. It also does not limit response size or redirects. Consequently, an attacker can coerce the server to send HTTP requests to arbitrary network targets accessible from the Boruta host, potentially exposing internal resources.
Potential Impact
An unauthenticated attacker can exploit this SSRF vulnerability to make the Boruta authorization server send HTTP requests to attacker-chosen URIs, including internal network services and cloud metadata endpoints. This may lead to unauthorized information disclosure or further internal network attacks depending on the network environment and accessible services. The vulnerability does not require user interaction or privileges.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. No official fix or patch has been documented as of the provided data. Until a patch is available, restrict network access to the Boruta server to trusted networks only and monitor for unusual outbound HTTP requests. Avoid exposing Boruta instances to untrusted networks. Follow vendor advisories for updates on remediation.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- EEF
- Date Reserved
- 2026-06-16T10:47:13.914Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6a6b81699c2644c7f860eab7
Added to database: 07/30/2026, 16:52:57 UTC
Last enriched: 07/30/2026, 17:10:14 UTC
Last updated: 09/12/2026, 22:01:34 UTC
Views: 63
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.