curl | 报告 #3211973 - netrc.c解析macdef时状态清除不当导致重定向凭据泄露
时间线
oxghostly 向curl提交报告
2025年6月20日 10:32 UTC
摘要
- 解析netrc文件时,macdef关键字未能清除先前加载的凭据。如果发生重定向,这些凭据将泄露到新主机。这是CVE-2024-11053的新变种,由不同代码路径触发(使用’macdef’而非’default’)。
- 该漏洞通过手动代码分析和测试发现
受影响版本
curl 8.15.0-DEV (x86_64-pc-linux-gnu) libcurl/8.15.0-DEV OpenSSL/3.5.0 zlib/1.3.1 libpsl/0.21.2
发布日期:[未发布]
协议:dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss
功能:alt-svc AsynchDNS Debug HSTS HTTPS-proxy IPv6 Largefile libz NTLM PSL SSL threadsafe TLS-SRP TrackMemory UnixSockets
重现步骤
-
设置两个监听器:
- nc -l -p 9000
- echo -e “HTTP/1.1 301 Moved Permanently\nLocation: http://localhost:9000” | nc -l -p 8000 -q 1
-
创建(poc_netrc.txt)文件,内容如下:
|
|
- 执行curl触发泄露:
|
|
- 验证凭据泄露:
|
|
结果:admin:SuperSecretPassword123
支持材料/参考文献
攻击者服务器终端(监听端口9000)将显示包含localhost凭据的泄露Authorization头,证明凭据在重定向过程中持续存在。
影响
如果攻击者控制重定向,可以诱使curl将受害者的.netrc用户名和密码发送到错误的服务器。这种情况可能在用户不知情的情况下发生,特别是在使用.netrc自动登录的脚本或CI管道中。
附件
- netrc-macdef-leak-poc.mkv
后续讨论
bagder (curl工作人员) 2025年6月20日 10:45 UTC
感谢您的报告!我们将花时间调查并尽快回复详细信息和可能的后续问题。
oxghostly 2025年6月20日 15:35 UTC
确认该漏洞也存在于稳定版8.14.1中,可使用相同命令重现。
bagder 2025年6月20日 20:36 UTC
确认为安全漏洞,但严重性级别待定。
jimfuller2024 2025年6月21日 05:11 UTC
建议保持与CVE-2024-11053相同的低严重性级别。
oxghostly 2025年6月21日 12:31 UTC
使用真实场景(Webhook.site)重现漏洞,证明凭据可泄露到攻击者控制的域。
技术讨论要点:
- 漏洞仅在原始域重定向到攻击者站点时发生
- 仅当macdef宏在netrc文件中正确定义时泄露凭据
- macdef仅用于FTP(curl不执行此类宏),实际使用场景有限
- 最终确认为设计行为:netrc文件按主机名提供凭据,与端口号无关
解决方案
curl团队更新文档说明此行为特性,关闭报告为"信息性"。
报告信息
报告时间:2025年6月20日 10:32 UTC
报告者:oxghostly
报告对象:curl
严重性:低 (0.1 ~ 3.9)
披露时间:2025年6月22日 16:26 UTC
弱点类型:通过发送数据的信息暴露
CVE ID:CVE-2024-11053