news 2026/3/3 4:30:13

当使用自定义Host头时,cURL中的跨源Cookie泄漏与注入风险

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
当使用自定义Host头时,cURL中的跨源Cookie泄漏与注入风险

报告详情

报告ID: #3516878
标题: 当使用自定义 Host 头时,存在跨源 Cookie 泄漏和注入风险
提交者: b4c90000040c1287364ccde6de680
提交时间: 14天前
报告对象: curl

摘要

当指定自定义主机名时,如果该传输也启用了Cookie引擎,则该主机名将被用于Cookie匹配。尽管最初提供的主机名在重定向后被移除,但这种匹配行为在跨源重定向中仍然持续。

技术细节

1. 自定义 Host 头如何设置 cookiehost
cookiehost从自定义的 Host 头中设置:
文件:lib/http.c中的http_set_aptr_host函数

ptr=Curl_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 result=copy_custom_value(ptr,&cookiehost);...aptr->cookiehost=cookiehost;}

2. cookiehost 如何被使用
cookiehost既用于发送 Cookie,也用于处理Set-Cookie
文件:lib/http.c中的http_header函数

v=(data->cookies&&data->state.cookie_engine)?HD_VAL(hd,hdlen,"Set-Cookie:"):NULL;.../* 如果有一个自定义设置的 Host: 名,则在此处使用它,否则使用真实的对等主机名。 */constchar*host=data->state.aptr.cookiehost?data->state.aptr.cookiehost:conn->host.name;...result=Curl_cookie_add(data,data->cookies,TRUE,FALSE,v,host,data->state.up.path,secure_context);

文件:lib/http.c中的http_cookies函数

constchar*host=data->state.aptr.cookiehost?data->state.aptr.cookiehost:data->conn->host.name;Curl_share_lock(data,CURL_LOCK_DATA_COOKIE,CURL_LOCK_ACCESS_SINGLE);result=Curl_cookie_getlist(data,data->conn,&okay,host,&list);

由于cookiehost在重定向时未被清除,此行为会持续存在于跨源重定向中。

libcurl 文档说明
libcurl 关于CURLOPT_HTTPHEADER的文档提到:

如果也为该传输启用了Cookie引擎,则指定的主机名将用于Cookie匹配。

但文档中没有明确警告这在跨源重定向中也适用。

受影响版本

  • 测试于 curl 8.18.0

复现步骤

使用以下命令复现该问题:

user@pc:~$curl-v -L -c cookies.txt -H"Host: example.com"--resolve b.com:8001:127.0.0.1 --resolve a.com:8000:127.0.0.1 a.com:8000

详细的请求和响应日志展示了跨域重定向过程中,针对example.com域设置的 Cookie(ccc="secret"bbb="test")被错误地发送到实际主机a.comb.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: 无
  • 赏金: 无FINISHED
    biOK/hzhVF2yKaGc5mK8oeejIYuUYW8I3RsXQCFCiXX2FBas+esuFymsr4+a87Du
    更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
    对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/2 6:06:35

YimMenu革新性全景指南:重新定义GTA5游戏增强工具体验

YimMenu革新性全景指南:重新定义GTA5游戏增强工具体验 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimM…

作者头像 李华
网站建设 2026/2/25 4:13:11

3个颠覆性技巧:用Apollo Save Tool实现PS4存档自由的核心方法

3个颠覆性技巧:用Apollo Save Tool实现PS4存档自由的核心方法 【免费下载链接】apollo-ps4 Apollo Save Tool (PS4) 项目地址: https://gitcode.com/gh_mirrors/ap/apollo-ps4 Apollo Save Tool是一款专为PS4玩家设计的存档管理工具,能够解决玩家…

作者头像 李华
网站建设 2026/3/1 1:16:33

设计自动化效率革命:3个秘诀让你的设计效率提升5倍

设计自动化效率革命:3个秘诀让你的设计效率提升5倍 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 诊断设计工作流中的效率瓶颈 你是否曾遇到这样的困境:花…

作者头像 李华
网站建设 2026/2/21 17:20:24

springboot计量器具管理平台开题报告

目录项目背景与意义技术选型与优势核心功能模块创新点预期成果技术路线进度计划项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作项目背景与意义 计量器具管理在工业、医疗、能源等领域具有重要作用&#x…

作者头像 李华
网站建设 2026/2/23 13:09:07

7步实现信息自由:新一代付费内容访问工具全解析

7步实现信息自由:新一代付费内容访问工具全解析 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的时代,学术期刊的付费墙、主流媒体的订阅门槛、专业…

作者头像 李华
网站建设 2026/3/1 13:41:30

高效获取B站音频:BilibiliDown无损保存全攻略

高效获取B站音频:BilibiliDown无损保存全攻略 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibi…

作者头像 李华