报告 #3118915 - curl中通过未净化URL参数处理导致的潜在XSS向量
提交者: redfoxsec
提交时间: 2025年4月30日 1:08 AM UTC
状态: 不适用(Not Applicable)
严重性: 高(7 ~ 8.9)
披露时间: 2025年6月30日 6:55 PM UTC
描述
摘要
在分析curl源代码过程中,发现通过glob_url()
函数及urlnode->url
处理URL输入时可能存在跨站脚本(XSS)向量。不当的输入验证或转义可能导致不可信数据被不安全地处理。
受影响版本
最新GitHub克隆的curl/curl。
测试环境:Kali Linux(VirtualBox)
版本命令:curl -v
复现步骤
- 克隆仓库:
1 2
git clone https://github.com/curl/curl.git cd curl
- 搜索漏洞代码引用:
1 2 3
grep -rn "glob_url" src/ grep -rn "urlnode" src/ grep -rn "strcpy" src/
- 在实际请求中尝试使用编码的XSS字符串作为载荷:
1
curl "http://test.com?param=%3Cscript%3Ealert(1)%3C/script%3E" -w "%{url_effective}"
- 观察失败行为及载荷如何处理或拒绝(301重定向、畸形输入、反射部分等)。
支持材料/参考文献
- 终端输出,包括代码搜索和载荷尝试
glob_url()
使用及不安全模式- 使用curl注入载荷的尝试
- 附截图供参考
影响
如果成功利用,此缺陷可能通过不安全处理用户控制的URL导致XSS。攻击者可以:
- 窃取会话cookies或令牌
- 将受害者重定向至恶意网站
- 在浏览器上下文中执行代码
- 进行钓鱼或社会工程攻击
此问题在curl嵌入面向用户应用程序、处理用户输入的CLI工具或消费不可信URL的CI管道等场景中变得至关重要。
附件
5个附件:
- F4299830: curl_poc_combined.jpg
- F4299849: 17459739859212994623293594568921.jpg
- F4299850: 17459739370401280908417306382914.jpg
- F4299851: 17459740127977524118070527789321.jpg
- F4299852: 17459739156244733383455011964397.jpg
时间线及回应
dfandrich (curl staff) - 2025年4月30日 1:41 AM UTC
不清楚您具体指控curl存在什么问题,但似乎混淆了HTTP客户端和HTTP服务器的区别。curl允许您向服务器发送任何内容;如果服务器返回的代码易受XSS问题影响,那不是curl的过错。如果curl返回可用于XSS攻击的字符串,再次说明这不是curl的问题,而是消费该数据的 whatever 的问题。
bagder (curl staff) - 2025年4月30日 6:16 AM UTC
将报告关闭并将状态改为“不适用”。
不当的输入验证或转义可能导致不可信数据被不安全地处理
不。如果您可以使用curl利用服务器中的某些东西,那不是因为curl的问题,而是因为服务器的问题。curl本身不可能易受“XSS向量”问题影响。传递编码字符串作为查询参数是curl的完全合法用法。这不是curl的安全问题。
bagder (curl staff) - 2025年6月28日 12:24 PM UTC
请求披露此报告。
bagder (curl staff) - 2025年6月30日 6:54 PM UTC
披露此报告。
报告详情
- 报告于: 2025年4月30日 1:08 AM UTC
- 报告者: redfoxsec
- 报告至: curl
- 参与者:
- 报告ID: #3118915
- 严重性: 高(7 ~ 8.9)
- 披露于: 2025年6月30日 6:55 PM UTC
- 弱点: 代码注入
- CVE ID: 无
- 奖金: 无
- 账户详情: 无
看起来您的JavaScript被禁用了。要使用HackerOne,请在浏览器中启用JavaScript并刷新此页面。