漏洞概述

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最新远程堆溢出漏洞复现与修复建议的更多相关文章

  1. 转-CVE-2016-10190浅析-FFmpeg堆溢出漏洞

    本文转载自CVE-2016-10190 FFmpeg Heap Overflow 漏洞分析及利用 前言 FFmpeg是一个著名的处理音视频的开源项目,使用者众多.2016年末paulcher发现FFm ...

  2. vmware漏洞之一——转:利用一个堆溢出漏洞实现VMware虚拟机逃逸

    转:https://zhuanlan.zhihu.com/p/27733895?utm_source=tuicool&utm_medium=referral 小结: vmware通过Backd ...

  3. Linux堆溢出漏洞利用之unlink

    Linux堆溢出漏洞利用之unlink 作者:走位@阿里聚安全 0 前言 之前我们深入了解了glibc malloc的运行机制(文章链接请看文末▼),下面就让我们开始真正的堆溢出漏洞利用学习吧.说实话 ...

  4. CVE-2010-2553:Microsoft Cinepak Codec CVDecompress 函数堆溢出漏洞调试分析

    0x01 前言 微软提供一个叫 Cinepak 的视频解码器,通过调用 iccvid.dll 这个动态链接库文件可以使用这个解码器:微软自带的 Windows Media Player(视频音频软件) ...

  5. IIS6远程代码执行漏洞复现CVE-2017-7269

    简述 CVE-2017-7269是IIS 6.0中存在的一个栈溢出漏洞,在IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行 ...

  6. Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御

    摘要:详细讲解MS08-067远程代码执行漏洞(CVE-2008-4250)及防御过程 本文分享自华为云社区<Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御>,作者 ...

  7. Tomcat/7.0.81 远程代码执行漏洞复现

    Tomcat/7.0.81 远程代码执行漏洞复现 参考链接: http://www.freebuf.com/vuls/150203.html 漏洞描述: CVE-2017-12617 Apache T ...

  8. Apache SSI 远程命令执行漏洞复现

    Apache SSI 远程命令执行漏洞复现 一.漏洞描述 当目标服务器开启了SSI与CGI支持,我们就可以上传shtml,利用<!--#exec cmd=”id” -->语法执行命令. 使 ...

  9. ThinkPHP 5.x远程命令执行漏洞复现

    ThinkPHP 5.x远程命令执行漏洞复现 一.漏洞描述 2018年12月10日,ThinkPHP官方发布了安全更新,其中修复了ThinkPHP5框架的一个高危漏洞: https://blog.th ...

  10. CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现

    CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现 参考文章1 参考文章2 By:Mirror王宇阳 漏洞原理 攻击者利用发现在服务器上包含(查看和潜在执行)文件的漏洞. ...

随机推荐

  1. 一文带你掌握C语言的循环结构

    C语言循环结构详解 在C语言中,循环结构是一种重要的控制结构,它允许我们重复执行一段代码,以达到特定的目的.循环结构可以帮助我们简化重复性的任务,提高代码的效率.本篇文章将深入探讨C语言中的循环结构, ...

  2. 如何用excel制作图表?

    Excel是一个非常强大的电子表格软件,其中包含了很多绘制图表的功能.下面是一些基本步骤,可以帮助你用Excel制作图表: 打开Excel并输入数据.在Excel中,首先需要输入需要制作图表的数据.可 ...

  3. 明解Java第一章练习题答案

    @ 目录 练习1-1 练习1-2 练习1-3 <明解Java>书籍其他章节答案 练习1-1 如果没有表示程序语句末尾的分号,结果会怎么样呢?请编译程序进行确认. 答:编译器报错 练习1-2 ...

  4. force语句

    类似于assign,用于调试,可以强制给赋值,放在initial后,可以穿透到最内部模块. force (强制赋值操作)与 release(取消强制赋值)表示第二类过程连续赋值语句. 使用方法和效果, ...

  5. [CF403E]Two Rooted Trees

    Two Rooted Trees 题面翻译 题目描述 你有两棵有根树,每棵树都有 \(n\) 个结点.不妨将这两棵树上的点都用 \(1\) 到 \(n\) 之间的整数编号.每棵树的根结点都是 \(1\ ...

  6. windows端口被占用怎么办?

    简单只需要按照一下命令查找到对应的端口kill掉就好了 1.查看本机所有的端口信息 netstat -ano 2.查看本机指定端口信息 netstat -ano | findstr "端口号 ...

  7. 【C++】【图像处理】灰度直方图实现算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)

    前情提要:本记录需要一定的C++和图像处理基础进行阅读. 图像处理算法学习记录: Code: 1 void histCompute(BYTE*image, int width, int height) ...

  8. Javascript Ajax总结——HTTP头部信息

    每个HTTP请求和响应都会带有相应的头部信息,其中有的对开发人员有用,有的没用.XHR对象也提供了操作这两种头部(即请求头部和响应头部)信息的方法.默认情况下,在发送XHR请求的同时,还会发送下列头部 ...

  9. MinIO客户端之rm

    MinIO提供了一个命令行程序mc用于协助用户完成日常的维护.管理类工作. 官方资料 mc rm 删除指定的对象. 准备待删除的对象,查看对象,命令如下: ./mc ls local1/bkt2/ 控 ...

  10. 分享.Net 设计模式大全

    由于最近项目处于维护阶段,工作没有那么匆忙了.于是开始回头整理一下常用设计模式. 虽说设计模式大家都知道,但是在写代码过程中为了抓项目进度有时候写着写着就变成面向过程开发了--后面维护起来将会相当的悲 ...