Canonical在2026年8月24日发布USN-8670-1安全公告,为Ubuntu 24.04 LTS提供curl和libcurl更新。问题编号为CVE-2026-8932,当应用改变客户端证书相关设置后复用已有连接,libcurl可能把本应隔离的连接判断为可以继续使用。
结果是后续请求可能使用错误的客户端证书。对普通下载命令影响有限,但运行mTLS接口、同时管理多个客户证书或长期复用连接池的服务,需要更认真地检查,因为证书往往代表具体设备、租户或服务身份。

漏洞出现在连接池复用判断中
libcurl为了减少重复握手和连接延迟,会把已经使用过的连接保存在连接池中。发起下一次传输时,只要现有连接与新请求配置匹配,就可以直接复用。
此次问题在于部分与mTLS客户端证书有关的选项没有进入完整匹配检查,尤其涉及私钥设置。应用虽然切换了证书配置,libcurl却仍可能选择之前建立的连接。
风险重点不是服务器证书校验,而是客户端身份可能被错误沿用。当不同请求代表不同账号或租户时,这会造成身份边界与应用预期不一致。
多证书和mTLS服务更值得关注
普通VPS上使用curl下载软件包、检测网页或调用单一公开API时,通常不会频繁切换客户端证书。真正需要优先检查的是在同一进程中访问多个mTLS服务,并为不同目标配置不同证书的程序。
常见场景包括API网关、支付接口、设备管理平台、企业服务间认证和多租户代理。只要应用使用libcurl连接池,同时动态修改客户端证书或私钥选项,就可能满足触发条件。
命令行curl通常执行完即退出,连接池生命周期较短;PHP扩展、后台守护进程、代理服务和嵌入libcurl的长期运行程序更需要关注。排查时不能只搜索curl命令,还要检查应用依赖的libcurl库。
Ubuntu 24.04已经提供修复包
这次安全公告列出的受影响发行版是Ubuntu 24.04 LTS。修复后的curl、libcurl3t64-gnutls、libcurl4t64及相关开发包版本为8.5.0-2ubuntu10.13。
Canonical表示,执行标准系统更新即可完成必要变更。管理员可以先运行软件包索引更新,再安装可用升级,并通过包管理器确认curl和libcurl已经达到修复版本。
Ubuntu将该问题的发行版优先级标为Low,上游同样按低严重性处理。风险等级较低不代表可以长期忽略,身份敏感的mTLS环境仍应根据实际调用方式提高修复优先级。
更新后还要重启使用libcurl的进程
安装新软件包只会替换磁盘上的库文件,已经运行的服务可能仍在内存中使用旧版libcurl。更新完成后应找出相关长期进程,并在维护窗口内重启应用、PHP-FPM、代理或自建后台服务。
之后可以重新执行多证书调用测试,确认切换客户端身份后,目标服务看到的证书主题和指纹与预期一致。日志中如果能够记录证书身份,应同时检查是否出现跨租户或跨服务复用。
容器环境也不能只更新宿主机。静态链接libcurl或镜像中自带Ubuntu用户空间的软件,需要重新构建镜像并重新部署,宿主机的apt升级不会直接替换容器文件系统中的旧库。
临时规避不能替代软件包升级
尚未安排重启时,可以减少跨身份连接复用,按客户端证书拆分连接池,或让不同身份运行在独立进程中。这些做法能够缩小误用机会,但需要确认应用框架是否真的隔离了底层连接。
禁用复用或为每次请求新建连接会增加TLS握手次数和延迟,也可能扩大CPU消耗,不适合作为长期方案。手工移植单个上游补丁同样容易产生版本维护问题。
最终处理仍应以Ubuntu官方软件包为准。完成升级、重启和证书切换测试后,再恢复原有连接池策略,才能同时保留性能和正确的客户端身份边界。


