curl默认最低TLS版本设置为TLS v1.0(加密弱点)的安全报告

本报告详细分析了curl将TLS v1.0设为默认最低版本的加密弱点,包括漏洞复现步骤、潜在攻击风险(如BEAST攻击),以及开发团队对此问题的讨论与回应。

报告 #3246519 - 默认最低TLS版本设置为TLS v1.0(加密弱点)

摘要

curl将TLS v1.0设置为默认最低版本,该版本已过时且易受BEAST等攻击,威胁数据完整性和机密性。此问题通过手动代码审查发现,未使用AI识别或生成本报告。

受影响版本:8.15.0-DEV(来自https://github.com/curl/curl的源代码,审查时的提交)。平台:任何使用较旧OpenSSL版本(未强制更严格最低版本)的curl。

复现步骤

  1. 查看文件 ./docs/libcurl/opts/CURLOPT_SSLVERSION.md。文档显示,当使用 CURL_SSLVERSION_DEFAULT 选项时,curl将TLS v1.0设为默认最低版本(自7.39.0版起),除非使用的TLS库强制更高版本。
  2. 在同一GitHub仓库中,打开文件 ./lib/vtls/openssl.c 并搜索 CURL_SSLVERSION_DEFAULT。您会注意到,使用此默认设置时,curl不设置特定最低TLS版本,而是遵循OpenSSL库的默认值。如果使用较旧OpenSSL版本(如1.1.0之前),这可能低至TLS v1.0。
  3. 如果您使用默认设置为TLS v1.0的较旧OpenSSL版本(如1.1.0之前)构建curl,或仅使用未更改的 CURL_SSLVERSION_DEFAULT 设置,curl可能最终以TLS v1.0建立连接。这是一个问题,因为TLS v1.0易受BEAST等攻击。
  4. 要查看危险,请设置curl连接到允许TLS v1.0的服务器(如测试服务器或使用openssl s_server)。使用默认设置或旧OpenSSL库时,curl将降级至TLS v1.0。攻击者可利用此弱连接窃听或篡改数据。

支持材料/参考文献

  • ./docs/libcurl/opts/CURLOPT_SSLVERSION.md(默认TLS v1.0最低版本的文档)
  • ./lib/vtls/openssl.c(处理 CURL_SSLVERSION_DEFAULT 而未强制更高最低版本的代码)

影响

摘要:攻击者可使用BEAST等攻击破解TLS v1.0以窃取数据或干扰连接。如果curl使用较旧OpenSSL库或坚持默认最低版本,会发生此情况。这使HTTPS/FTPS链接上的敏感信息面临风险,尤其对于不了解此默认设置的用户。

时间线

  • 10天前:monkey_dee 向curl提交报告。
  • 10天前:bagder(curl员工)回复:感谢报告,将调查并尽快回复。
  • 10天前:jimfuller2024(curl员工)评论:使用旧OpenSSL时可能更有问题;2025年不应使用TLS 1.0。问题在于curl是否应保护用户免于此行为,或在文档中突出“不要这样做”。
  • 10天前:jimfuller2024 补充:不认为这是curl的安全问题;使用十年旧OpenSSL版本构建curl的用户不应惊讶其有严重安全问题。TLSv1有BEAST/POODLE问题且无好加密算法,多数浏览器/OS已禁用它。有时无法持续向后移植。
  • 10天前:bagder 评论:这是文档化行为;非漏洞。使用已终止支持的旧TLS库版本肯定带来更严重问题。可讨论移除设置和使用TLSv1.0的可能性,但应公开进行以供所有人参与。
  • 10天前:monkey_dee 回复:感谢快速回复。理解旧OpenSSL版本带来许多风险,但仍认为curl设置TLS v1.0为默认最低版本可能使用户陷入不安全设置,尤其在 stuck with旧库的地方。建议在curl代码中将默认最低版本提升至TLS v1.2以更安全开箱即用。愿意进一步讨论。
  • 10天前:bagder 关闭报告并将状态改为“不适用”,并发布链接:https://curl.se/mail/lib-2025-07/0007.html。
  • 10天前:bagder 请求披露此报告:根据项目透明政策,希望所有报告公开。
  • 10天前:monkey_dee 回复:理解。感谢审查报告和考虑问题。很高兴您花时间调查并将讨论移至公共邮件列表。再次感谢回应。
  • 10天前:bagder 披露此报告。

报告详情

  • 报告时间:2025年7月10日 18:24 UTC
  • 报告者:monkey_dee
  • 报告对象:curl
  • 报告ID:#3246519
  • 严重性:中等(4 ~ 6.9)
  • 披露时间:2025年7月10日 21:42 UTC
  • 弱点:使用破损或风险加密算法
  • CVE ID:无
  • 赏金:无
  • 账户详情:无
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计