通过cURL的file://协议实现任意文件读取 | 报告 #3242087
漏洞描述
cURL的file://协议处理程序默认启用,允许访问系统上的本地文件。此行为使得能够运行cURL命令的攻击者可以通过指定文件路径或使用目录遍历技术读取主机上的任意文件。
复现步骤
- 使用默认配置构建cURL(例如:
./configure --with-ssl && make
) - 运行
./src/curl "file:///etc/passwd"
读取passwd文件内容 - 运行
./src/curl "file:///tmp/../../etc/passwd"
演示通过路径遍历访问同一文件 - 运行
./src/curl -s "file:///etc/shadow" | head -c20
读取shadow文件中的部分敏感数据
这证实了可以通过file://协议访问任意本地文件,构成了严重的安全风险。
影响范围
能够在系统上运行cURL命令的攻击者可以读取运行cURL的用户有权访问的任何本地文件,包括高度敏感的文件如/etc/shadow。这可能导致:
- 密码哈希和凭证的窃取
- 通过破解被盗哈希实现权限提升
- 通过横向移动或进一步利用实现完全系统入侵
- 机密配置或密钥文件的暴露
总体而言,此漏洞损害了系统机密性,并可能导致受影响主机的完全接管。
时间线
- 2025年7月9日 5:36 UTC:mr_tufan向curl提交报告
- 9天前:bagder(curl工作人员)评论"这是cURL的预期行为"
- 9天前:jimfuller2024(curl工作人员)评论"不是安全问题"
- 9天前:mr_tufan关闭报告并将状态改为"不适用"
- 9天前:bagder请求披露此报告
- 9天前:bagder披露此报告
报告详情
- 报告ID:#3242087
- 严重程度:严重(9~10)
- 披露时间:2025年7月9日 7:23 UTC
- 弱点类型:路径遍历
- CVE ID:无
- 赏金:无
附件
包含1个证明文件:proof.txt