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.
Published: 2026-07-30
Score: 6.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is a Server‑Side Request Forgery that occurs when the application dereferences a client‑supplied URI without validating the target. Unauthenticated requests that include a malicious request_uri or jwks_uri cause the server’s HTTP client to fetch that URI. The code does not enforce HTTPS, apply an allowlist, or block non‑public address ranges after DNS resolution, and it does not limit response size or constrain redirects. As a result, an attacker can direct the server to reach any network destination that the host can reach, potentially enabling data exfiltration or further internal network compromise.

Affected Systems

The affected product is Boruta Auth from the vendor malach‑it, specifically all releases from version 2.3.2 through 2.3.6 inclusive.

Risk and Exploitability

The CVSS score of 6.9 classifies this as moderate severity. The EPSS score is reported as < 1%, indicating a very low but non‑zero likelihood of exploitation. The vulnerability is not listed in CISA KEV. The attack vector is remote and unauthenticated: an attacker must craft an OAuth authorization request or an OpenID Connect dynamic client registration that contains a malicious URI. Once triggered, the broker initiates an outbound HTTP request to the specified address and follows redirects without size limits, giving attackers a straightforward path to internal hosts or cloud metadata services. Successful exploitation can lead to information disclosure or serve as a foothold for further attacks.

Generated by OpenCVE AI on August 2, 2026 at 05:19 UTC.

Remediation

Vendor Workaround

Restrict the network egress of the Boruta host so that the OAuth/OpenID authorization server cannot reach loopback, private, link-local, multicast, or cloud metadata addresses. Where possible, disable application routes for OAuth request_uri dereferencing and OpenID Connect dynamic client registration, or restrict OpenID Connect dynamic client registration to trusted callers, until a patched release is deployed.


OpenCVE Recommended Actions

  • Update to Boruta v2.3.7 or later where the SSRF issue is resolved
  • Restrict outbound traffic from the Boruta host so that the OAuth/OpenID authorization server cannot reach loopback, private, link‑local, multicast, or cloud metadata addresses
  • Where possible, disable the application routes that dereference OAuth request_uri and OpenID Connect dynamic client registration or restrict those paths to trusted callers until a patched release is deployed
  • Optionally monitor outbound HTTP connections for anomalous activity to detect potential exploitation

Generated by OpenCVE AI on August 2, 2026 at 05:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 30 Jul 2026 18:00:00 +0000

Type Values Removed Values Added
First Time appeared Malach-it boruta
Vendors & Products Malach-it boruta

Thu, 30 Jul 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 30 Jul 2026 15:00:00 +0000

Type Values Removed Values Added
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.
Title Server-side request forgery in Boruta OAuth request_uri and OpenID jwks_uri fetching
First Time appeared Malach-it
Malach-it boruta Auth
Weaknesses CWE-918
CPEs cpe:2.3:a:malach-it:boruta_auth:*:*:*:*:*:*:*:*
Vendors & Products Malach-it
Malach-it boruta Auth
References
Metrics cvssV4_0

{'score': 6.9, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N'}


Subscriptions

Malach-it Boruta Boruta Auth
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-07-31T04:20:03.434Z

Reserved: 2026-06-16T10:47:13.914Z

Link: CVE-2026-54885

cve-icon Vulnrichment

Updated: 2026-07-30T16:14:29.534Z

cve-icon NVD

Status : Deferred

Published: 2026-07-30T15:16:34.050

Modified: 2026-07-30T17:16:33.337

Link: CVE-2026-54885

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-02T05:30:06Z

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)