博客

深度解析:发现并修复 libcurl/curl 高危漏洞

October 20, 2023
Laura Verheyde

不久前,安全和开发社区收到了一份来自 curl 项目首席开发者 Daniel Stenberg 的公告,他 发布了令人遗憾的消息:10 月 11 日发布的 curl 新版本旨在修复两个高影响力的安全漏洞,其中一个被他描述为“curl 长期以来最严重的漏洞”。

Stenberg 在博客上发布的 事后分析指出,受影响的 curl 库版本存在堆缓冲区溢出漏洞,这与自 2002 年以来一直使用的 SOCKS5 代理协议中的遗留问题有关。

作为一款自 1998 年就开始使用的命令行工具,curl 被广泛认为是互联网的基石。由于其悠久的历史和广泛的应用,一旦发现漏洞,可能会对整体网络安全产生持续的影响。

此次事件与 Log4j 中毁灭性的 Log4Shell 攻击有相似之处,后者是另一个至今仍被利用的易受攻击的依赖项。
‍
>>> 立即通过我们的 curl 任务测试您的知识!‍

漏洞类型:缓冲区溢出

该漏洞详情记录在 CVE-2023-38545 中,影响 7.69.0 到 8.3.0(含)版本的 curl。主要缺陷是堆缓冲区溢出漏洞,初步报告指出,成功利用该漏洞可能导致更具破坏性的远程代码执行 (RCE) 攻击。虽然这对威胁行为者来说是一种可能的攻击路径,但这种情况非常罕见。

或许减轻风险的唯一慰藉是,恶意通信必须通过 SOCKS5 代理,而这在部署中相对少见。

与 curl 漏洞类似,让我们来看看这个关于缓冲区溢出的解释:

当 curl 被要求使用 SOCKS5 代理时,它会将主机名传递给代理并由其进行解析。然而,如果主机名超过 255 字节的限制,curl 将在本地解析主机名(如下面的代码片段所示:来源)。

如果客户端和代理之间的握手缓慢,长主机名可能会被复制到内存缓冲区中,而不是(较短的)已解析地址。分配的内存部分仅允许 255 字节的值,因此如果接收到的值超过此限制,数据将溢出内存缓冲区的边界。

C code snippet showing buffer allocation, memset, and out-of-bounds access causing overflow.

>>> 在此 实战演练中亲自尝试一下!

缓冲区溢出是一种强大的攻击向量,在许多遗留编程语言中很常见。在此特定案例中,利用该漏洞在某些环境下可能引发更严重、更具破坏性的 RCE 攻击,尽管这种路径仍然不常见且可能性较低。

如何降低缓冲区溢出风险?

现阶段,首要的补救措施是为所有易受攻击的实例应用补丁。需要提醒的是,curl 的使用非常广泛,您的系统中可能包含该依赖项,但并未显式标注或告知。在这种情况下,必须进行审计并随后进行修补。

通常,缓冲区溢出缺陷可以通过使用像 Rust 这样的内存安全语言来缓解。然而,对于像 curl 这样庞大的项目,随意移植到另一种语言或重写是不切实际的。正如 Stenberg 在讨论使用和支持更多用内存安全语言编写的依赖项的可能性,或者逐步替换 curl 的部分组件时所 指出的那样:“……开发速度目前慢如蜗牛,这清晰地展示了其中的挑战。在可预见的未来,curl 将继续使用 C 语言编写。”这是一项艰巨的任务,且其安全影响深远。

安全错误不可避免,我们无法总是依赖扫描器和测试来发现每一个可能的攻击向量。因此,我们在对抗这些漏洞时最强大的武器,是对持续安全意识和技能提升的承诺。
‍

想了解更多关于如何编写安全代码和降低风险的信息吗?

免费体验我们的 堆溢出挑战。

如果您想获取更多免费的编码指南,请查看 Secure Code Coach,它能助您掌握安全编码的最佳实践。

标语

在 AI 驱动的开发成果发布前实现有效治理

评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。

预约演示
资源库

探索更多博客

获取有关安全编码、人工智能治理和软件风险管理的专家内容。

浏览全部
案例研究
筛选标签
这是 div 块中的一段文本。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

统一的安全文化:Sage 如何打造其安全倡导者项目

了解 Sage 如何通过灵活且以关系为导向的方法提升安全性,成功培养了 200 多名安全倡导者,并实现了显著的风险降低。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

2026年网络安全意识月:理解人工智能安全对企业防御至关重要

目前,大多数顶级人工智能公司已公开呼吁全球放缓人工智能的发展速度,以便安全防护措施能够跟上步伐。然而事实是,严重的安全问题已经显现。随着人工智能实施带来的经济成本和风险不断累积,无数安全领导者和高管团队正处于紧迫的境地。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

赋能要素 8:打造项目品牌

成功的安全编码项目不仅需要优质的内容。赋能要素 8 展示了如何通过品牌化将参与过程转变为一种令人向往、以地位为驱动的体验。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

每一位员工现在都处于 AI 网络安全的最前线

企业技术格局正以一种鲜有人预料到的速度发生剧变,直到为时已晚。我们已正式跨越了从人工编写代码和基础辅助编程,进入“智能体开发生命周期”(ADLC)的时代。虽然自主 AI 智能体有望在多个职能领域实现前所未有的效率,但它们也带来了全新的安全和监管风险。

了解更多

在产品发布前确保 AI 驱动的开发安全

洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。

预约演示
未找到相关项目。