警惕!curl SOCKS5 堆溢出漏洞安全通告

图片

近日,亚信安全CERT监测到curl项目组发布了curl SOCKS5 存在堆溢出漏洞的安全公告,该漏洞同时影响curl命令行工具和libcurl库部分版本。当使用curl请求目标主机过程中使用SOCKS5代理时,如果目标主机名大于255字节,curl会使用本地解析主机代替远程解析造成堆缓冲区溢出。

鉴于curl和libcurl库使用广泛,亚信安全CERT建议广大客户排查受影响产品,但该漏洞利用条件较为苛刻,如暂时无法升级的客户,可以通过亚信安全提供的临时方案或对应产品进行防护。

libcurl是一个跨平台的网络协议库,支持http、https、ftp、gopher、telnet、dict、file、和ldap协议。libcurl同样支持HTTPS证书授权,HTTP POST、HTTP PUT、FTP 上传、HTTP基本表单上传、代理、cookies和用户认证。libcurl 用于提供处理网络通信和数据传输的 Api 接口。

漏洞编号、类型和等级

  • 编号:CVE-2023-38545

  • 类型:代码执行

  • 等级:高危

漏洞状态

漏洞细节

PoC

EXP

在野利用

已公开

已公开

未公开

未发现

受影响的版本

7.69.0<= libcurl <= 8.3.0

漏洞利用条件

libcurl库,以下任一条件

  • CURLOPT_PROXYTYPE 设置为CURLPROXY_SOCKS5_HOSTNAME,如:curl_easy_setopt(handle, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME)

  • CURLOPT_PROXY 或CURLOPT_PRE_PROXY使用socks5h://代理地址,如:curl_easy_setopt(handle, CURLOPT_PROXY, "socks5h://...")

  • 代理环境变量设置为 socks5h://

curl命令行工具(7.x版本,以下任一条件)

  • 使用--socks5-hostname参数

  • 使用-x参数值为socks5h://格式

  • 代理环境变量设置为 socks5h://

curl命令行工具(8.x版本)

  • 在7.x版本利用条件上,CURLOPT_BUFFERSIZE未设置或者通过设置--limit-rate值小于65541

受影响版本排查

curl

  • 使用curl -V查看curl版本信息

  • 针对系统环境curl可以使用curl -V | egrep -o '^curl [678]+\.[0-9]+\.[0-9]+'查看版本信息

  • 针对进程中的curl可以使用strings curl | egrep -o '^curl [678]+\.[0-9]+\.[0-9]+'查看版本信息

libcurl库

  • 针对系统 lib 目录及应用目录中的文件分析,如strings libcurl.so | egrep -o 'libcurl[ -/]([678]+\.[0-9]+\.[0-9]+)'

  • 针对运行中的应用可以通过分析进程打开文件来判断,如sudo lsof | egrep -o '/.\.so.*' | xargs -I {} bash -c "strings {} | egrep -o 'libcurl[ -/]([678]+\.[0-9]+\.[0-9]+)'"

修复建议

建议受影响用户升级至 curl >= 8.4.0

暂时无法升级的用户建议:

  • 不要将curl与CURLPROXY_SOCKS5_HOSTNAME代理一起使用

  • 不要将代理环境变量设置为socks5h://

参考链接

  • https://github.com/curl/curl/commit/fb4415d8aee6c1

  • https://curl.se/docs/CVE-2023-38545.html

  • https://access.redhat.com/security/cve/cve-2023-38545

  • https://jfrog.com/blog/curl-libcurl-october-2023-vulns-all-you-need-to-know/

  • https://www.tenable.com/blog/cve-2023-38545-cve-2023-38546-frequently-asked-questions-for-new-vulnerabilities-in-curl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值