报告详情报告ID: #3516878标题: 当使用自定义 Host 头时存在跨源 Cookie 泄漏和注入风险提交者: b4c90000040c1287364ccde6de680提交时间: 14天前报告对象: curl摘要当指定自定义主机名时如果该传输也启用了Cookie引擎则该主机名将被用于Cookie匹配。尽管最初提供的主机名在重定向后被移除但这种匹配行为在跨源重定向中仍然持续。技术细节1. 自定义 Host 头如何设置 cookiehostcookiehost从自定义的 Host 头中设置文件:lib/http.c中的http_set_aptr_host函数ptrCurl_checkheaders(data,STRCONST(Host));if(ptr(!data-state.this_is_a_follow||curl_strequal(data-state.first_host,conn-host.name))){/* 如果我们有一个给定的自定义 Host: 头部我们提取主机名 以便稍后可能将其用于Cookie相关操作。只有当这不是重定向请求时 我们才允许自定义 Host: 头因为在重定向请求中设置 Host: 头是很冒险的。 除非主机名与第一个主机名相同 */char*cookiehost;CURLcode resultcopy_custom_value(ptr,cookiehost);...aptr-cookiehostcookiehost;}2. cookiehost 如何被使用cookiehost既用于发送 Cookie也用于处理Set-Cookie文件:lib/http.c中的http_header函数v(data-cookiesdata-state.cookie_engine)?HD_VAL(hd,hdlen,Set-Cookie:):NULL;.../* 如果有一个自定义设置的 Host: 名则在此处使用它否则使用真实的对等主机名。 */constchar*hostdata-state.aptr.cookiehost?data-state.aptr.cookiehost:conn-host.name;...resultCurl_cookie_add(data,data-cookies,TRUE,FALSE,v,host,data-state.up.path,secure_context);文件:lib/http.c中的http_cookies函数constchar*hostdata-state.aptr.cookiehost?data-state.aptr.cookiehost:data-conn-host.name;Curl_share_lock(data,CURL_LOCK_DATA_COOKIE,CURL_LOCK_ACCESS_SINGLE);resultCurl_cookie_getlist(data,data-conn,okay,host,list);由于cookiehost在重定向时未被清除此行为会持续存在于跨源重定向中。libcurl 文档说明libcurl 关于CURLOPT_HTTPHEADER的文档提到如果也为该传输启用了Cookie引擎则指定的主机名将用于Cookie匹配。但文档中没有明确警告这在跨源重定向中也适用。受影响版本测试于 curl 8.18.0复现步骤使用以下命令复现该问题userpc:~$curl-v -L -c cookies.txt -HHost: example.com--resolve b.com:8001:127.0.0.1 --resolve a.com:8000:127.0.0.1 a.com:8000详细的请求和响应日志展示了跨域重定向过程中针对example.com域设置的 Cookiecccsecret和bbbtest被错误地发送到实际主机a.com和b.com。复现过程生成的cookies.txt文件内容如下# Netscape HTTP Cookie File # https://curl.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. example.com FALSE / FALSE 0 bbb test example.com FALSE / FALSE 0 ccc secret影响跨源 Cookie 泄漏和注入风险攻击者可能利用此行为通过诱使用户访问一个可控的、能够设置自定义 Host 头并触发跨域重定向的页面来窃取或注入与任意域名关联的 Cookie。处理过程bagder (curl staff)在14天前发表了评论这是预期行为。bagder (curl staff)在13天前关闭了报告并将状态改为Not Applicable欢迎建议改进文档的措辞以使其更清晰但我们确实尝试记录了这一点并且任何实际尝试和测试此功能的应用程序都会看到它。这不是一个安全问题。bagder (curl staff)在13天前请求公开此报告根据项目的透明性政策我们希望所有报告都被公开。bagder (curl staff)在13天前公开了此报告。报告元数据报告日期: January 19, 2026, 6:46pm UTC报告者: b4c90000040c1287364ccde6de680报告对象: curl参与者: bagder (curl staff)严重等级: 无评级 (—)公开日期: January 20, 2026, 6:48am UTC弱点分类: 凭证保护不足CVE ID: 无赏金: 无FINISHEDbiOK/hzhVF2yKaGc5mK8oeejIYuUYW8I3RsXQCFCiXX2FBasesuFymsr4a87Du更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享