当使用自定义Host头时,cURL中的跨源Cookie泄漏与注入风险
报告详情报告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智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享

相关新闻

leetcode 921. Minimum Add to Make Parentheses Valid 使括号有效的最少添加-耗时100

leetcode 921. Minimum Add to Make Parentheses Valid 使括号有效的最少添加-耗时100

Problem: 921. Minimum Add to Make Parentheses Valid 使括号有效的最少添加 耗时100%&#xff0c;栈若满足栈顶(‘当前’)则pop栈顶&#xff0c;否则push&#xff0c;最后返回栈的大小 Code class Solution { public:int minAddToMakeValid(string s) {stack<char> tk…

2026/7/2 20:05:23 阅读更多 →
基于PHP、asp.net、java、Springboot、SSM、vue3的公司工作任务管理系统的设计与实现

基于PHP、asp.net、java、Springboot、SSM、vue3的公司工作任务管理系统的设计与实现

目录 可选框架 可选语言 内容 可选框架 J2EE、MVC、vue3、spring、springmvc、mybatis、SSH、SpringBoot、SSM、django 可选语言 java、web、PHP、asp.net、javaweb、C#、python、 HTML5、jsp、ajax、vue3 内容 本文分析了自动办公化模式&#xff0c;随着中国企业数量的…

2026/5/17 3:19:42 阅读更多 →
3步构建教育资源诊疗系统:从混乱管理到智能架构的转型方案

3步构建教育资源诊疗系统:从混乱管理到智能架构的转型方案

3步构建教育资源诊疗系统&#xff1a;从混乱管理到智能架构的转型方案 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具 项目地址: https://gitcode.com/GitHub_Trending/tc/tchMaterial-parser 问题诊断&#xff1a;你的教育资源库是否正…

2026/5/17 3:19:42 阅读更多 →

最新新闻

SQL聚合函数实战:SQL Ultimate Course数据分析基础指南

SQL聚合函数实战:SQL Ultimate Course数据分析基础指南

SQL聚合函数实战&#xff1a;SQL Ultimate Course数据分析基础指南 【免费下载链接】sql-ultimate-course The most comprehensive SQL guide from a real-world expert! Learn everything from basics to advanced queries, optimizations, and real-world SQL 项目地址: h…

2026/7/4 6:46:51 阅读更多 →
switch.vim性能优化:大型代码库中的高效文本切换策略终极指南

switch.vim性能优化:大型代码库中的高效文本切换策略终极指南

switch.vim性能优化&#xff1a;大型代码库中的高效文本切换策略终极指南 【免费下载链接】switch.vim A simple Vim plugin to switch segments of text with predefined replacements 项目地址: https://gitcode.com/gh_mirrors/sw/switch.vim 你是否在大型代码库中频…

2026/7/4 6:46:51 阅读更多 →
如何智能切换DLSS版本:游戏性能优化的终极指南

如何智能切换DLSS版本:游戏性能优化的终极指南

如何智能切换DLSS版本&#xff1a;游戏性能优化的终极指南 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在为游戏卡顿而烦恼吗&#xff1f;想要提升游戏帧率却不知从何下手&#xff1f;DLSS Swapper正是你需要的游…

2026/7/4 6:44:51 阅读更多 →
CANN/asc-devkit LoadData矩阵搬运

CANN/asc-devkit LoadData矩阵搬运

&#xfeff;# LoadData&#xff08;2D矩阵搬运&#xff09; 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景…

2026/7/4 6:44:51 阅读更多 →
终极音乐解析指南:4个PHP文件搞定四大平台音乐地址

终极音乐解析指南:4个PHP文件搞定四大平台音乐地址

终极音乐解析指南&#xff1a;4个PHP文件搞定四大平台音乐地址 【免费下载链接】music-api Music API 项目地址: https://gitcode.com/gh_mirrors/mu/music-api 还在为音乐平台API接口复杂而头疼吗&#xff1f;今天我要介绍一个简单实用的开源工具——music-api&#xf…

2026/7/4 6:42:50 阅读更多 →
ftpserver故障排除手册:常见问题诊断与解决方案大全

ftpserver故障排除手册:常见问题诊断与解决方案大全

ftpserver故障排除手册&#xff1a;常见问题诊断与解决方案大全 【免费下载链接】ftpserver Golang based autonomous FTP server with SFTP, S3, Dropbox, and Google Drive connectors. 项目地址: https://gitcode.com/gh_mirrors/ftp/ftpserver 作为一名Go语言开发的…

2026/7/4 6:40:50 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布&#xff0c;这是一个关键的安全修复版本&#xff0c;修复了多个方面的问题&#xff0c;还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出&#xff0c;mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南&#xff1a;使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL&#xff08;Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器&#xff0c;与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻