供应链安全情报 | cURL最新远程堆溢出漏洞复现与修复建议
漏洞概述
cURL 是一个支持多种网络协议的开源项目,被广泛集成到自动化构建、网络测试、网络数据采集以及其他网络相关的任务中,备受开发者和系统管理员青睐。
cURL在2023年10月11日下午紧急发布最新版本来修复前几日发现的高危安全漏洞,其中编号为CVE-2023-38545的漏洞是cURL客户端在处理SOCKS5协议时存在的堆内存溢出漏洞。

漏洞复现
悬镜供应链安全实验室第一时间对该漏洞进行分析和复现,当使用存在CVE-2023-38545漏洞的curl客户端或libcurl库请求攻击者的恶意socks代理服务器时,攻击者可通过socks5服务器返回非法的协议数据来远程触发该堆内存溢出漏洞,如果能成功利用该漏洞,受害者主机系统可能存在被攻击者远程执行任意代码的风险。
复现结果如下所示(测试版本curl 8.3.0):

使用curl客户端访问攻击者搭建的恶意socks代理服务器(socks5h://random.test:1080)

curl接收到socks代理服务器的响应数据时触发内存崩溃,通过gdb内存调试可以发现curl进程的合法数据内存被攻击者发送的恶意数据覆盖导致进程崩溃。

受影响版本
CVE-2023-38545 socks协议内存溢出漏洞在libcurl 7.69.0被引入(https://github.com/curl/curl/commit/4a4b63daaa),在8.4.0版本中被修复,目前该漏洞只影响libcurl 7.69.0 ~ 8.3.0版本,不受漏洞影响的版本:libcurl < 7.69.0 和 >= 8.4.0。
漏洞补丁
cURL项目官方发布了CVE-2023-38545的漏洞补丁如下
https://github.com/curl/curl/commit/fb4415d8aee6c1

在修复补丁中,当cURL客户端发现socks5代理服务器返回的http重定向hostname长度大于255时,则直接抛出异常(SOCKS5: the destination hostname is too long to be resolved remotely by the proxy.)。

修复建议
- 禁止使用存在漏洞版本的curl客户端或libcurl库连接不信任的socks代理服务器
- 升级到最新版本8.4.0
*ps:可以关注下容器中 cURL 的默认版本
该漏洞利用难度较高,用户可酌情选择是否升级到最新版本
悬镜供应链安全实验室也将持续监测和挖掘未知的开源组件安全风险,并及时对相关风险进行分析披露。
供应链安全情报 | cURL最新远程堆溢出漏洞复现与修复建议的更多相关文章
- 转-CVE-2016-10190浅析-FFmpeg堆溢出漏洞
本文转载自CVE-2016-10190 FFmpeg Heap Overflow 漏洞分析及利用 前言 FFmpeg是一个著名的处理音视频的开源项目,使用者众多.2016年末paulcher发现FFm ...
- vmware漏洞之一——转:利用一个堆溢出漏洞实现VMware虚拟机逃逸
转:https://zhuanlan.zhihu.com/p/27733895?utm_source=tuicool&utm_medium=referral 小结: vmware通过Backd ...
- Linux堆溢出漏洞利用之unlink
Linux堆溢出漏洞利用之unlink 作者:走位@阿里聚安全 0 前言 之前我们深入了解了glibc malloc的运行机制(文章链接请看文末▼),下面就让我们开始真正的堆溢出漏洞利用学习吧.说实话 ...
- CVE-2010-2553:Microsoft Cinepak Codec CVDecompress 函数堆溢出漏洞调试分析
0x01 前言 微软提供一个叫 Cinepak 的视频解码器,通过调用 iccvid.dll 这个动态链接库文件可以使用这个解码器:微软自带的 Windows Media Player(视频音频软件) ...
- IIS6远程代码执行漏洞复现CVE-2017-7269
简述 CVE-2017-7269是IIS 6.0中存在的一个栈溢出漏洞,在IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行 ...
- Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御
摘要:详细讲解MS08-067远程代码执行漏洞(CVE-2008-4250)及防御过程 本文分享自华为云社区<Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御>,作者 ...
- Tomcat/7.0.81 远程代码执行漏洞复现
Tomcat/7.0.81 远程代码执行漏洞复现 参考链接: http://www.freebuf.com/vuls/150203.html 漏洞描述: CVE-2017-12617 Apache T ...
- Apache SSI 远程命令执行漏洞复现
Apache SSI 远程命令执行漏洞复现 一.漏洞描述 当目标服务器开启了SSI与CGI支持,我们就可以上传shtml,利用<!--#exec cmd=”id” -->语法执行命令. 使 ...
- ThinkPHP 5.x远程命令执行漏洞复现
ThinkPHP 5.x远程命令执行漏洞复现 一.漏洞描述 2018年12月10日,ThinkPHP官方发布了安全更新,其中修复了ThinkPHP5框架的一个高危漏洞: https://blog.th ...
- CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现
CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现 参考文章1 参考文章2 By:Mirror王宇阳 漏洞原理 攻击者利用发现在服务器上包含(查看和潜在执行)文件的漏洞. ...
随机推荐
- 使用CompletableFuture实现多个异步任务并行完成后合并结果
业务场景 需要同时从多个副本数据库中查询数据,并对查询结果进行合并去重处理后返回前端. 实现过程涉及多数据源切换,这里不作过多讨论. 编码实现 实现过程: 1.定义异步查询数据方法: 2.通过Comp ...
- CH395+EMQX实现MQTT应用(Windows系统)
目录: 1.MQTT协议 1.1简介 1.2特性 1.3实现方式 1.4数据包结构 2.EMQX具体操作步骤 3.代码说明 4.工程链接 MQTT协议 1.MQTT简介 MQTT是一种基于 发布/订阅 ...
- flask请求钩子(就是django的中间件)
flask中的请求钩子就是域django的中间件类似,作用都是用于在请求前.后.响应前.后进行一些hook操作. 请求钩子装饰器 @app.before_request # 请求前会调用,一般可以用来 ...
- Selenium查找元素、元素的属性和方法
查找元素 官方文档:https://www.selenium.dev/documentation/webdriver/elements/locators/ 一般通过find_element或者find ...
- NetSuite 开发日记:批量增删改
一.批量插入/创建 使用 record.create() 插入数据时,一次只能插入一条,有多条数据需要插入时只能通过循环的方式,这样效率非常慢,耗时会随着数据量的增大而呈线性增长,有一种巧妙的方式可以 ...
- Reformer 模型 - 突破语言建模的极限
Reformer 如何在不到 8GB 的内存上训练 50 万个词元 Kitaev.Kaiser 等人于 20202 年引入的 Reformer 模型 是迄今为止长序列建模领域内存效率最高的 trans ...
- ElasticSearch之cat indices API
命令样例如下: curl -X GET "https://localhost:9200/_cat/indices?v=true&pretty" --cacert $ES_H ...
- 【OpenCV】 OpenCV 源码编译并实现 CUDA 加速 (Windows)
目录 1. 环境准备 1.1 软件环境 1. 2 源码下载 2. CMake编译项目 2.1 创建cmake项目 2.2 设置编译配置 2.3 解决异常 2.3.1 文件下载异常 2.3.2 解决CU ...
- MySQL 基础(一)数据存储
存储在磁盘上的数据需要通过 IO 来读取,这是一个比较耗时的操作,为了能够提高访问速度,MySQL 引入了 Page 的结构作为客户端与数据交互的基本单元. Page 结构 Page 的大小默认为 1 ...
- ubuntu 之 安装mysql8
安装 1 wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb 2 sudo apt-get update sudo apt ...