IPBUF安全漏洞报告
English
CVE-2026-5773 CVSS 7.5 高危

CVE-2026-5773 libcurl SMB连接重用逻辑错误漏洞

披露日期: 2026-05-13
来源: 2499f714-1537-4658-8207-48ae4bb9eae9

漏洞信息

漏洞编号
CVE-2026-5773
漏洞类型
逻辑错误
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
libcurl

相关标签

libcurlSMB逻辑错误信息泄露CVE-2026-5773

漏洞概述

libcurl在处理SMB(S)传输时存在逻辑漏洞,可能错误复用连接池中的SMB连接。当应用程序请求同一服务器上的不同共享资源时,由于代码逻辑缺陷,libcurl可能错误地复用了之前建立的、指向不同共享的连接。这导致在特定情况下,用户可能会下载错误的文件,或将文件上传到错误的位置,造成信息泄露或数据完整性风险。

技术细节

libcurl为了降低网络开销,维护了一个连接池以复用现有的连接。在正常情况下,复用连接需满足服务器名、端口、凭据及路径等严格标准。然而,该漏洞源于代码中的逻辑错误,导致在检查连接复用条件时,未能正确区分同一服务器下的不同“Share”(共享路径)。当一个新的传输请求指向Server的Share B,而连接池中存在指向Server的Share A的连接时,libcurl可能错误地判定复用条件成立。因此,后续针对Share B的操作实际上是在Share A的上下文中执行。由于使用了相同的凭据和服务器名,服务端可能接受该操作。攻击者可利用此漏洞诱导应用下载敏感文件或向非预期位置写入数据,造成信息泄露或数据篡改。该漏洞CVSS评分为7.5,属于高危漏洞。

攻击链分析

STEP 1
建立初始连接
应用程序使用libcurl连接到SMB服务器的共享A(Share A)并传输文件,连接结束后被放入连接池。
STEP 2
触发后续请求
应用程序随后请求同一SMB服务器的共享B(Share B)中的资源。
STEP 3
错误连接复用
libcurl在检查连接池时,由于逻辑错误,错误地认为指向Share A的连接可以用于当前请求,从而复用了该连接。
STEP 4
执行非预期操作
针对Share B的请求实际上在Share A的上下文中执行,导致从Share A下载了本应从Share B下载的文件名对应的文件,或反之。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { // Step 1: Initiate a transfer to Share A curl_easy_setopt(curl, CURLOPT_URL, "smb://server/share1/secret.txt"); curl_easy_setopt(curl, CURLOPT_USERNAME, "user"); curl_easy_setopt(curl, CURLOPT_PASSWORD, "pass"); res = curl_easy_perform(curl); // The connection is returned to the pool, associated with share1 context // Step 2: Initiate a transfer to Share B // Vulnerability: libcurl may reuse the connection from Share A for Share B curl_easy_setopt(curl, CURLOPT_URL, "smb://server/share2/public.txt"); res = curl_easy_perform(curl); if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); curl_easy_cleanup(curl); } curl_global_cleanup(); return 0; }

影响范围

libcurl (具体受影响版本需参考官方安全公告)

防御指南

临时缓解措施
在官方补丁可用之前,可以考虑在应用程序中针对不同的SMB共享使用独立的libcurl句柄或上下文,避免连接复用;或者禁用SMB协议的连接持久化功能(如果API支持)。

参考链接

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