Curl netrc CRLF注入漏洞分析

本文详细分析了Curl工具中netrc文件存在的CRLF注入漏洞,攻击者可通过在登录名或密码中注入回车换行符实现FTP/POP3命令注入,但该漏洞属于本地攻击者已存在权限范畴。

Report #2831558 - netrc crlf injection | HackerOne

时间线

nyymi 向curl提交报告 2024年11月9日 23:23 UTC

摘要

Curl允许在netrc文件的登录名和密码字段中编码CR和LF字符。这使得能够影响netrc条目内容的攻击者可以通过在登录名或密码中注入CRLF来注入FTP命令。POP3可能同样受影响,但尚未测试。

唯一可能被视为漏洞的情况是当有人可以自由选择其用户名或密码,然后将其注入到netrc文件中。例如,某些应用程序从用户提供的输入构建netrc文件时可能发生这种情况。

这很可能属于"本地攻击者已存在"类别的问题。然而,我将决定权留给项目方。如果不被视为安全问题,我将关闭该工单,该问题可以在安全流程之外作为普通错误进行修复。

复现步骤

创建包含以下内容的netrc文件:

1
2
3
machine localhost
  login alice
  password "alicespassword\r\nDELE pocfile.txt"

运行命令:

1
2
echo -ne "220 \r\n331 \r\n" | nc -v -l -p 9999
curl -v --netrc-file netrc ftp://localhost:9999

修复建议

在为使用这些字符作为分隔符的协议(FTP、POP3等)构建命令时,不允许在用户名或密码中使用CR或LF。

影响

FTP/POP3命令注入。

项目方回复

bagder curl staff 发表评论。2024年11月10日 08:12 UTC 感谢您的报告! 我们将花时间调查您的报告,并尽快给您回复详细信息和可能的后续问题!很可能在24小时内。

我们始终努力尽快修复报告的问题。严重性为低或中的问题我们会在普通发布周期中合并到下一个版本中。只有更严重的问题我们可能会提前发布修复。

bagder curl staff 发表评论。2024年11月10日 21:47 UTC 我认为这属于"本地攻击者已存在"类别。这不是由curl引起的安全问题。

nyymi 关闭报告并将状态更改为不适用。2024年11月10日 22:56 UTC 由于这不是漏洞,故关闭。

bagder curl staff 请求披露此报告。14天前 根据项目的透明度政策,我们希望所有报告都被披露并公开。

bagder curl staff 披露此报告。14天前

报告详情

报告时间:2024年11月9日 23:23 UTC 报告者:nyymi 报告对象:curl 报告ID:#2831558 严重性:无评级(—) 披露时间:2025年7月7日 10:17 UTC 弱点:CRLF注入 CVE ID:无 赏金:无 账户详情:无

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计