cURL 7.77.0 发布,命名200 OK

出品|开源中国

文|白开水

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

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

cURL 7.77.0 发布,命名200 OK

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 日发布,但具体的版本号还尚未确定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一口Linux

众筹植发

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值