报告 #3118915 - curl中通过未过滤URL参数处理导致的潜在XSS向量
时间线
redfoxsec 提交报告至 curl。
2025年4月30日,UTC时间1:08
描述
摘要:
在分析curl源代码期间,通过glob_url()
函数及urlnode->url
处理URL输入的方式,识别出一个可能的跨站脚本(XSS)向量。不当的输入验证或转义可能导致不可信数据被不安全地处理。
受影响版本:
最新GitHub克隆的curl/curl。
测试环境:Kali Linux (VirtualBox)
版本命令:
curl -v
复现步骤:
- 克隆仓库:
git clone https://github.com/curl/curl.git
cd curl
- 搜索漏洞代码引用:
grep -rn "glob_url" src/
grep -rn "urlnode" src/
grep -rn "strcpy" src/
- 在实际请求中尝试使用编码的XSS字符串作为载荷:
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日,UTC时间1:41
不清楚您具体指控curl有什么问题,但似乎您混淆了HTTP客户端和HTTP服务器的区别。curl允许您向服务器发送任何内容;如果服务器返回的代码易受XSS问题影响,那不是curl的错。如果curl返回一个可用于XSS攻击的字符串,再次说明这不是curl的问题,而是消费该数据的 whatever 的问题。
bagder (curl staff) 关闭报告并将状态改为“不适用”。
2025年4月30日,UTC时间6:16
不当的输入验证或转义可能导致不可信数据被不安全地处理
不。如果您可以使用curl利用服务器中的某些东西,那不是因为curl的问题,而是因为服务器的问题。curl本身不可能易受“XSS向量”问题影响。
传递编码字符串作为查询参数是curl的完全合法使用。
这不是curl的安全问题。
bagder (curl staff) 请求披露此报告。
2025年6月28日,UTC时间12:24
bagder (curl staff) 披露此报告。
2025年6月30日,UTC时间18:54
报告详情
项目 | 详情 |
---|---|
报告时间 | 2025年4月30日,UTC时间1:08 |
报告者 | redfoxsec |
报告对象 | curl |
参与者 | |
报告ID | #3118915 |
严重性 | 高 (7 ~ 8.9) |
披露时间 | 2025年6月30日,UTC时间18:55 |
弱点 | 代码注入 |
CVE ID | 无 |
赏金 | 无 |
账户详情 | 无 |