news 2026/3/27 2:14:30

当使用自定义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/24 17:59:50

【含文档+PPT+源码】基于微信小程序的房屋租赁系统

项目介绍本课程演示的是一款基于微信小程序的房屋租赁系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料2.带你从零开始部署运行本套系统3.该项目附带的源码…

作者头像 李华
网站建设 2026/3/25 13:37:47

电脑越用越慢?这款轻量工具让内存释放提升40%

电脑越用越慢?这款轻量工具让内存释放提升40% 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct 你是否遇到…

作者头像 李华
网站建设 2026/3/15 9:56:31

抖音内容批量获取工具:技术实现与效能优化指南

抖音内容批量获取工具:技术实现与效能优化指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 一、应用场景矩阵 1.1 单资源精准获取 场景定义:针对特定短视频或图集进行定向下载&a…

作者头像 李华
网站建设 2026/3/24 14:37:19

视频离线工具全攻略:从问题诊断到高级应用

视频离线工具全攻略:从问题诊断到高级应用 【免费下载链接】jable-download 方便下载jable的小工具 项目地址: https://gitcode.com/gh_mirrors/ja/jable-download 一、问题诊断:三大核心使用场景解析 在数字内容消费时代,视频离线工…

作者头像 李华
网站建设 2026/3/23 12:12:14

文件下载加速与隐私保护技术研究

文件下载加速与隐私保护技术研究 【免费下载链接】pdown 百度网盘下载器,2020百度网盘高速下载 项目地址: https://gitcode.com/gh_mirrors/pd/pdown 在数字化时代,文件下载加速与隐私保护已成为网络服务的核心需求。本文深入探讨一种创新的文件传…

作者头像 李华
网站建设 2026/3/24 0:35:54

7个革命性设计效率工具:让创意工作流提升500%的突破指南

7个革命性设计效率工具:让创意工作流提升500%的突破指南 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 当凌晨三点的咖啡已经凉透,设计师李明还在第17次调整…

作者头像 李华