CVE-2026-33637
Awaiting Analysis Awaiting Analysis - Queue
Protocol-Relative Host Override in Faraday

Publication date: 2026-05-19

Last updated on: 2026-05-19

Assigner: GitHub, Inc.

Description
Faraday is an HTTP client library abstraction layer that provides a common interface over many adapters. Versions 2.0.0 through 2.14.1 still allow protocol-relative host override when the request target is passed as a URI object (rather than a String) to Faraday::Connection#build_exclusive_url. This bypasses the February 2026 fix for GHSA-33mh-2634-fwr2 and enables off-host request forgery: a request built from a fixed-base Faraday::Connection can be redirected to an attacker-controlled host, forwarding connection-scoped values such as Authorization headers and default query parameters. This issue has been fixed in version 2.14.3.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-05-19
Last Modified
2026-05-19
Generated
2026-05-20
AI Q&A
2026-05-19
EPSS Evaluated
N/A
NVD
EUVD
Affected Vendors & Products
Showing 6 associated CPEs
Vendor Product Version / Range
lostisland faraday From 2.0.0 (inc) to 2.14.1 (inc)
lostisland faraday 2.14.3
lostisland faraday From 1.0.0 (inc) to 1.10.4 (inc)
lostisland faraday From 2.0.0 (inc) to 2.14.0 (inc)
lostisland faraday 2.14.1
lostisland faraday 1.10.5
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-918 The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

CVE-2026-33637 is a vulnerability in the Faraday Ruby HTTP client library versions 2.0.0 through 2.14.1. It allows protocol-relative URI objects to bypass host scoping restrictions when passed as URI objects instead of strings. This means that an attacker can craft a request that overrides the intended host with an attacker-controlled host, causing the application to send requests to malicious servers.

The vulnerability is a regression of a previous fix and enables off-host request forgery by forwarding sensitive connection-scoped values such as Authorization headers and default query parameters to the attacker-controlled host. This occurs because the protocol-relative URI (e.g., //evil.example/pwn) overrides the base host, allowing unauthorized requests to external hosts.

This issue was confirmed with proof-of-concept code and affects real adapters like net_http. The vulnerability is classified as CWE-918 (Server-Side Request Forgery) and was fixed in Faraday version 2.14.3.


How can this vulnerability impact me? :

This vulnerability can impact you by allowing an attacker to redirect HTTP requests from your application to an attacker-controlled host while preserving sensitive headers such as Authorization tokens and default query parameters.

As a result, your application might unintentionally disclose sensitive information or perform unauthorized actions on behalf of the user or system, potentially leading to data leakage or misuse of credentials.

However, the severity is considered low (CVSS score 0.0) due to limited impact, but it still enables off-host request forgery which can be exploited in certain scenarios.


How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability involves the Faraday Ruby library allowing protocol-relative URI objects to bypass host scoping restrictions, enabling off-host request forgery. Detection involves identifying if your application uses vulnerable Faraday versions (2.0.0 through 2.14.1) and if it passes URI objects (instead of strings) to Faraday request methods.

To detect exploitation attempts on your network or system, monitor outgoing HTTP requests for unusual host redirections, especially requests where the host is overridden by protocol-relative URIs (e.g., URLs starting with //evil.example).

Since this is a library-level vulnerability, detection commands would focus on checking the installed Faraday version and scanning code for usage patterns.

  • Check Faraday version in your Ruby environment: `bundle list | grep faraday` or `gem list faraday`
  • Search your codebase for usage of Faraday request methods with URI objects: `grep -r "Faraday.*URI(" ./` or `grep -r "conn.get(URI" ./`
  • Monitor outgoing HTTP requests for suspicious host overrides, e.g., using network monitoring tools or logging HTTP client requests.

What immediate steps should I take to mitigate this vulnerability?

The primary mitigation is to upgrade the Faraday library to version 2.14.3 or later, where this vulnerability has been fixed.

As an immediate workaround, validate and sanitize any user input that is passed to Faraday request methods to prevent protocol-relative URLs from being used.

  • Reject or sanitize paths starting with // followed by a non-/ character to prevent protocol-relative host overrides.
  • Prepend './' to user-supplied paths before passing them to Faraday to ensure they are treated as relative paths.

Review your code to avoid passing URI objects directly to Faraday request methods; prefer passing strings that are properly validated.


How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:

The provided information does not specify any direct impact of this vulnerability on compliance with common standards and regulations such as GDPR or HIPAA.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart