发布演示
直播发布视频演示将于世界标准时间 2025 年 2 月 5 日 09:00在 twitch 上进行。
数字
第264次发布
8 处变更
56天(总计:9,819)
244 个错误修复(总计:11,417)
367 次提交(总计:34,180)
2个新的公共libcurl函数(总计:96)
0 个新的curl_easy_setopt() 选项(总计:306)
1 个新的curl 命令行选项(总计:267)
65 位贡献者,34 位新贡献者(总计:3,332)
34 位作者,18 位新作者(总计:1,341)
3 个安全修复(总计:164)
安全
CVE-2025-0167:netrc 和默认凭据泄漏。当要求使用.netrc
文件作为凭据并遵循 HTTP 重定向时,curl 可能会在某些情况下将第一个主机使用的密码泄露给后续主机。仅当 netrc 文件具有default
登录名和密码的默认条目时,此缺陷才会显现出来。一种罕见的情况。
CVE-2025-0665:eventfd 双重关闭。在完成线程名称解析后关闭连接通道时,libcurl 会错误地关闭同一文件描述符两次。
CVE-2025-0725:gzip 整数溢出。当要求 libcurl 使用CURLOPT_ACCEPT_ENCODING
选项对内容编码的 HTTP 响应执行自动 gzip 解压缩时,使用 zlib 1.2.0.3 或更早版本,攻击者控制的整数溢出将使 libcurl 执行缓冲区溢出。几乎不会再有用户使用这样旧且易受攻击的 zlib 版本。
变化
- curl:为从文件读取的变量添加字节范围支持
- 卷曲:make –etag-save 确认 –create-dirs
- curl:将“time_queue”变量添加到-w
- getinfo:提供用于 HTTP 和代理的身份验证信息:
- openssl:添加对使用 PKCS#11 提供商的密钥和证书的支持
- QUIC:通过 CURLSSLOPT_EARLYDATA 实现 gnutls 的 0RTT
- vtls:用于 SSL 会话 im-/export 的 ssls-export 功能
- hyper:放弃支持
错误修正
一些需要强调的错误修复。
库卷曲
- 确认 CURLOPT_DNS_SERVERS 设置为 NULL
- 修复 CURLOPT_CURLU 覆盖逻辑
- 初始 HTTPS RR 解析支持
- 禁止使用 sscanf()
- conncache:根据主机和最大限制计算关闭次数
- 支持使用自定义 libzstd 内存函数
- 将 Cookie 的过期时间限制为 400 天
- 仅解析确切的 cookie 过期日期
- 将关闭连接包含在curl_multi_fdset 返回的集合中
- easy_lock:在旧 Windows 上使用 Sleep(1) 来获得线程产量
- ECH:将 API 更新为与 OpenSSL 维护者达成一致的 API
- 使用 GnuTLS 修复早期数据的“time_appconnect”
- HTTP/2和HTTP7/3:剥离TE请求头
- mbedtls:修复阻塞发送的处理
- mime:在附件时显式倒带子部分。
- 修复浮点精度中的 mprintf 整数处理
- 在 Windows 上终止 snprintf 输出
- 修复 fd_count 的curl_multi_waitfds 报告
- 修复已从多手柄中删除的简易手柄的返回代码
- 将 ssl_scache 添加到多句柄
- 为 WolfSSL + OpenSSL 构建自动启用
OPENSSL_COEXIST
- 使用 SSL_poll 确定 OpenSSL QUIC 流的可写性
- 安全传输错误时免费提供证书
- 修复对新片段或查询的重定向处理(仅)
- 返回 winidn 和 appleidn 的“IDN”功能集
脚本
- 许多 cmake 改进
- scripts/mdlinkcheck: Markdown 链接检查器
卷曲工具
- 如果 etag 选项与多个 URL 一起使用,则返回错误
- 接受 –form type= strings 中的数字
- 让 –etag-compare 接受一个不存在的文件
文档
- 添加描述项目基础设施的 INFRASTRUCTURE.md
下一个
下一个版本可能是curl 8.13.0,如果一切顺利,它将于 2025 年 4 月 2 日发布。