Curl导致用户凭证在重定向中暴露CVE-2024-11053漏洞
Curl是一个强大的命令行工具和库(libcurl),用于与服务器进行数据传输,支持各种协议(如HTTP、HTTPS、FTP等)进行数据传输。
Curl通常用于测试API、爬取网页、上传和下载文件等任务,是个利用URL语法在命令行下工作的文件传输工具,产品于1997年首次发行。
一、基本情况
Curl支持文件上传和下载,所以是综合传输工具,但按传统习惯称cURL为下载工具,该产品支持常见的身份验证、代理、cookie等功能。
Curl名字源于“Client URL”,意为客户端URL工具,支持下载和上传文件、处理cookies、跟踪重定向及多种身份验证,支持如下各种协议:
FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP等。
栋科技漏洞库关注到一个影响广泛使用的Curl命令行工具和库的漏洞,该漏洞已被追踪为CVE-2024-11053,该漏洞的CVSS评分高达9.1。
二、漏洞分析
CVE-2024-11053漏洞源于.netrc文件存储凭证与Curl处理HTTP重定向之间的交互,可能导致用户凭证意外泄露,因此具有严重安全隐患。
该漏洞是在特定情况下出现的,当Curl配置为使用.netrc文件并且跟随重定向的时候,可能错误地将初始主机的密码泄露给重定向的主机。
简而言之,如果.netrc文件中包含重定向目标主机名条目,但省略密码或同时省略登录名和密码,curl将错误地使用初始主机密码进行传输。
如当Curl从a.tld重定向到b.tld时,如果.netrc文件中a.tld有密码而b.tld没有,curl将错误地将a.tld的密码用于b.tld传输,可能导致密码泄露。
该漏洞影响Curl版本6.5至8.11.0,但需要注意的是早于6.5和8.11.1及以后的版本不受影响,官方提供的解决方案是升级到Curl版本8.11.1。
由于Curl和Libcurl被许多企业和环境中应用广泛使用,且通常未明确提及,该漏洞的潜在凭证暴露可能导致未授权访问和敏感信息的泄露。
三、漏洞影响
6.5 <= Curl <= 8.11.0
四、修复建议
目前该漏洞已经修复,受影响用户可升级到8.11.1版本或应用提供的补丁并重建curl。
作为临时解决办法,建议避免在重定向中使用.netrc文件。
Curl >= 8.11.1
五、参考链接