cURL高危HTTP/2上传漏洞可导致客户端代码执行 需升级到最新发布的8.23.0版

cURL高危HTTP/2上传漏洞可导致客户端代码执行 需升级到最新发布的8.23.0版

💡 原文中文,约900字,阅读约需3分钟。
📝

内容提要

cURL发布8.23.0版,修复HTTP/2上传中的释放后使用高危漏洞CVE-2026-92392,影响8.12.0至8.22.0版。恶意服务器可在客户端上传文件时触发内存错误,甚至远程代码执行,但利用条件苛刻,更可能仅致崩溃。升级即可修复,无法升级可禁用HTTP/2,命令行加--http1.1参数。

🔎

延伸解读

漏洞触发条件与影响范围

该漏洞影响 cURL 和 libcurl 8.12.0 至 8.22.0 版本,且构建需启用 HTTP/2。攻击者需控制服务器,并诱导客户端主动上传文件。当 cURL 处理服务器发来的 HTTP/2 流重置帧时,会在释放传输对象后继续使用其引用,造成释放后使用,可能导致内存错误甚至代码执行。

实际利用难度与风险评级

虽然已有远程代码执行的概念验证,但成功利用要求攻击者掌握目标 cURL 版本、架构、内存分配器和堆布局,并控制并发传输的时序。cURL 项目将此漏洞评级为高危,但指出实际攻击更可能仅导致客户端崩溃,而非稳定实现代码执行。

修复与临时缓解措施

升级到 cURL 8.23.0 版即可修复该漏洞。若无法立即升级,可禁用 HTTP/2:命令行工具使用时追加 --http1.1 参数切换到 HTTP/1.1;使用 libcurl 的程序可设置相应版本选项来避免触发漏洞。

❓

Q&A

cURL 8.23.0 版本修复了什么安全漏洞?

修复了 HTTP/2 上传过程中的释放后使用漏洞,漏洞编号 CVE-2026-92392,该漏洞可导致客户端代码执行。

哪些 cURL 版本受到这个 HTTP/2 上传漏洞的影响?

影响 cURL 和 libcurl 8.12.0 至 8.22.0 版本,包括命令行工具以及集成该库的软件。

攻击者如何利用这个 cURL 漏洞?

恶意服务器在接收文件上传时,通过发送 HTTP/2 流重置帧,触发 cURL 在释放传输对象后继续使用其引用,造成释放后使用,进而可能实现远程代码执行。

利用这个漏洞实现远程代码执行需要满足哪些条件?

需要攻击者掌握目标 cURL 版本、机构、内存分配器和堆布局,并控制并发传输的时序,利用条件比较苛刻。

如果无法升级 cURL,有什么临时缓解措施?

可以禁用 HTTP/2,命令行版本通过追加 --http1.1 参数切换到 HTTP/1.1,使用 libcurl 的程序可以设置相应版本选项。

这个漏洞的实际危害有多大?

cURL 项目将漏洞评级为高,虽然已有远程代码执行验证,但实际攻击更可能导致客户端崩溃。

🏷️

标签

➡️

继续阅读