cURL 7.77.0 发布,200 OK

来源: OSCHINA
2021-05-28

cURL 7.77.0 现已发布。这是该软件的第 200 次版本发布,因此官方也将 7.77.0 版本命名为 200 OK。

“它恰好与我们超过 900 个提交者和超过 2400 个项目的贡献者相吻合。这也是有史以来第一个我们在 RELEASE-NOTES 中感谢 80 多人帮助我们发布的版本,并且我们 在bug-bounty 计划中创造了两个新的记录:对一个 bug 的最大单次支付(2000 美元)和在一个发布周期内的最大总支付 3800 美元。”

Release Presentation

Numbers

  • 第 200 次发布
  • 5 changes
  • 42 天 (total: 8,468)
  • 133 bug-fixes (total: 6,966)
  • 192 commits (total: 27,202)
  • 0 个新的 public libcurl function (total: 85)
  • 2 个新的 curl_easy_setopt() 选项 (total: 290)
  • 2 个新的 curl 命令行选项 (total: 242)
  • 82 contributors, 44 new (total: 2,410)
  • 47 authors, 23 new (total: 901)
  • 3 个安全修复 (total: 103)
  • 3800 美元的 Bug 赏金 (total: 9,000 USD) 

Security

  • CVE-2021-22901: TLS session caching disaster。这是 OpenSSL 后端代码中的一个 Use-After-Free,在 absolutely worst 的情况下会导致 RCE,即远程代码执行。这个漏洞是最近才出现的,很难被利用,但官方建议用户应该立即升级或打补丁。从 TLS 服务器发送与 TLS 会话相关的信息时,如果以前使用它的传输已经完成并消失,则会发生此问题。这就是那个价值 2000 美元的 bug。
  • CVE-2021-22898: TELNET stack contents disclosure。当 libcurl 接受自定义 TELNET 选项发送至服务器时,输入解析器存在缺陷,可被利用来让 libcurl 代替堆栈发送内容。这个漏洞价值 1000 美金。
  • CVE-2021-22897: schannel cipher selection surprise。在 Schannel 的后端代码中,为一次 transfer 所选择的密码被存储在一个静态变量中。这导致一个传输的选择削弱了单组传输的选择,可能会在不知不觉中影响其他连接,使其安全等级低于预期。这个漏洞价值 800 美金。

Changes

  • Make TLS flavor explicit:curl configure 脚本不再默认选择一个特定的 TLS 库。现在当使用 configure 构建 curl 时,需要选择要使用的库。
  • No more SSL:curl 现在不再有支持 SSLv2 或 SSLv3 的痕迹。这些古老而不安全的 SSL 版本已经被各地的 TLS 库默认禁用,但现在即使在特殊构建中也无法激活它们。从 curl 工具和库中都删除了(因此算作两个 change)。
  • HSTS in the build:此前版本中曾带来了对 HSTS 的实验性支持,现在已去掉了实验性的标签,并在构建时默认启用,以便大家更容易地使用它。
  • In-memory cert API:为 libcurl 引入 API 选项,允许用户在内存中指定证书,而不是使用文件系统中的文件。参见 CURLOPT_CAINFO_BLOB

一些有趣的 bug-fixes

  • Version output:curl -V 输出的 first line 得到了更新:libcurl 现在包括了 OpenLDAP 及其在构建中使用的版本;然后 curl 工具可以添加 libmetalink 及其在构建中使用的版本。
  • curl_mprintf: add description:在 API 中提供了 *printf() clone functions,同时首次提供了一个明确的使用手册页。
  • CURLOPT_IPRESOLVE: 防止使用错误的 IP 版本:官方指出,这个选项比以前更严格了一些。以前,它对现有的连接比较宽松,倾向于重复使用而不是再次解析,但是从现在开始,这个选项确保只使用请求 IP 版本的连接。这允许应用程序在需要时使用不同的 IP 版本明确地创建两个独立的连接到同一个主机,在以前,libcurl 则不会轻易让你这么做。
  • 忽略 curl_easy_send 中的 SIGPIPE
  • Several HTTP/2-fixes:在这个版本中,HTTP/2 模块中提到了不少于 6 个独立的修复措施。一些潜在的内存泄漏,但也有一些更多的行为改进。最重要的可能是将传输相关的错误代码从连接结构移至传输结构,因为它容易受到 race condition 的影响,可能会导致错误。另一个相关的修正是,libcurl 不再强行断开一个传输得到 HTTP_1_1_REQUIRED 结果的连接。
  • Partial CONNECT requests:当发送给代理的 CONNECT HTTP 请求没有全部在单个 send() 调用中发送时,curl 会失败。不过令人费解的是,这个 bug 在早期的时候并没有被发现或报告,却在最近一次发出一个大于 16KB 的 CONNECT 请求时被发现了。
  • ......

​​​​​​下一个版本计划于 2021 年 7 月 21 日发布,但具体的版本号还尚未确定。

详情可查看:https://daniel.haxx.se/blog/2021/05/26/curl-7-77-0-200-ok/

展开阅读全文
6 收藏
分享
加载中
最新评论 (4)
史上最OK的版本
2021-05-28 10:11
0
回复
举报
瞎命名,引起混乱.
2021-05-28 09:56
0
回复
举报
顶,测试必备
2021-05-28 07:28
0
回复
举报
您好,请问linux下都用这个比较多吗?
2021-05-28 07:26
0
回复
举报
更多评论
4 评论
6 收藏
分享
返回顶部
顶部