IPBUF安全漏洞报告
English
CVE-2026-33745 CVSS 7.4 高危

CVE-2026-33745 cpp-httplib 跨域重定向凭证泄露漏洞

披露日期: 2026-03-27

漏洞信息

漏洞编号
CVE-2026-33745
漏洞类型
信息泄露
CVSS评分
7.4 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
cpp-httplib

相关标签

信息泄露跨域重定向cpp-httplib凭证管理不当

漏洞概述

cpp-httplib是一个C++11单文件跨平台HTTP/HTTPS库。在0.39.0版本之前,其HTTP客户端在跟随跨源HTTP重定向(301/302/307/308)时存在安全缺陷。该库会将存储的Basic Auth、Bearer Token及Digest Auth凭证转发至任意主机,导致攻击者可利用恶意重定向获取用户的明文敏感凭证。

技术细节

漏洞触发原理在于cpp-httplib客户端处理重定向逻辑时的校验缺失。当客户端配置了认证头(如Authorization)并向服务器A发起请求时,若服务器A返回指向攻击者服务器B的3xx重定向响应,受影响版本的客户端不会清除或验证凭证的适用范围。它会自动跟随重定向,并将包含敏感凭证的Authorization头原样发送给服务器B。由于CVSS向量显示无需用户交互(UI:N)且网络可达(AV:N),一旦客户端访问了恶意端点,凭证即被窃取,严重威胁系统机密性与完整性。

攻击链分析

STEP 1
步骤1
攻击者诱导或控制受害者客户端向受信任的服务器发送HTTP请求,请求中包含Basic Auth或Bearer Token等敏感凭证。
STEP 2
步骤2
受信任的服务器(或被攻陷的中间节点)向客户端返回3xx状态码(如302),指示重定向到攻击者控制的服务器地址。
STEP 3
步骤3
存在漏洞的cpp-httplib客户端解析重定向指令,未验证目标主机安全性,直接跟随重定向。
STEP 4
步骤4
客户端向攻击者的服务器发送新请求,错误地将原始请求中的Authorization头(含明文凭证)转发给攻击者。
STEP 5
步骤5
攻击者服务器接收并记录请求头中的凭证,完成信息窃取。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#include <httplib.h> #include <iostream> // Simulated vulnerable client behavior void test_vulnerable_redirect() { httplib::Client cli("http://trusted-server.com"); // Set Basic Auth credentials cli.set_basic_auth("user", "secret_password"); // The server responds with a 302 redirect to "http://attacker-controlled.com/log" // In vulnerable versions (< 0.39.0), the Authorization header is forwarded to the attacker. auto res = cli.Get("/redirect-endpoint"); if (res) { std::cout << "Status: " << res->status << std::endl; } else { std::cout << "Request failed" << std::endl; } } // Server side proof (Attacker's server logging the leak) // The attacker captures the 'Authorization' header sent by the vulnerable client.

影响范围

cpp-httplib < 0.39.0

防御指南

临时缓解措施
如果无法立即升级,建议在应用层禁用HTTP客户端的自动重定向跟随功能,或者手动实现重定向处理逻辑,确保在发生跨域重定向时丢弃或重新验证认证凭证。

参考链接

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