Liunx centos7 下 Haxx curl 资源管理错误漏洞(CVE-2021-22901)和Requires: libnghttp2.so.14()

3,569 阅读4分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

📖前言

心态好了,就没那么累了。心情好了,所见皆是明媚风景。

“一时解决不了的问题,那就利用这个契机,看清自己的局限性,对自己进行一场拨乱反正。”正如老话所说,一念放下,万般自在。如果你正被烦心事扰乱心神,不妨学会断舍离。断掉胡思乱想,社区垃圾情绪,离开负面能量。心态好了,就没那么累了。心情好了,所见皆是明媚风景。

📖问题背景

Liunx centos7Haxx curl 资源管理错误漏洞(CVE-2021-22901)

由于业务需要(漏洞扫描),服务器上的 curl 版本太老了,有漏洞,于是抽点时间升级最新版本,确保服务器间通信安全,然后网上看了些教程,发现各不相同,最后找到一个最简单,最方便的方法,分享给大家。传送门:curl漏洞解决,说白了就是需要升级到稳定的最新版本

🌂具体描述如下

漏洞名称Haxx curl 资源管理错误漏洞(CVE-2021-22901)
漏洞类型其他漏洞
CVE编号CVE-2021-22901
CNNVD编号CNNVD-202105-1683
CNVD编号--
CNCVE编号CNCVE-202122901
BUGTRAQ--
漏洞描述HAXX Haxx curl是瑞典Haxx(HAXX)公司的一套利用URL语法在命令行下工作的文件传输工具。该 工具支持文件上传和下载,并包含一个用于程序开发的libcurl(客户端URL传输库)。 curl存在 资源管理错误漏洞,该漏洞使用OpenSSL库作为TLS后端的curl版本可以在OpenSSL库执行TLS会话重 新协商后使用已释放的内存。恶意的TLS服务器可能会利用这个缺陷来崩溃,或者使用curl库以客 户端应用程序的特权执行任意代码。
修复建议目前厂商已发布升级补丁以修复漏洞,补丁获取链接: curl.se/docs/CVE-20…
漏洞名称Oracle MySQL Server Server DML 安全漏洞(CVE-2020-14828)
漏洞类型数据库漏洞
CVE编号CVE-2020-14828
CNNVD编号CNNVD-202010-968

🚀开始

CURL 是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称 CURL 为下载工具。CURL 还包含了用于程序开发的 libcurl

1. 添加一个新的 repo

vim /etc/yum.repos.d/city-fan.repo
​
​
# 然后在里面添加如下内容:# Centos6 编辑为如下:
​
[CityFanforCurl]
​
name=City Fan Repo
​
baseurl=http://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/
​
enabled=0
​
gpgcheck=0
​
​
# Centos7 编辑为如下:
​
[CityFanforCurl]
​
name=City Fan Repo
​
baseurl=http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/
​
enabled=0
​
gpgcheck=0

PS:vim 进入后按 i 开始编辑,结束编辑按 esc 输入 :wq 回车保存

2. 更新 CURL

# 直接使用如下命令进行更新:
​
yum update curl --enablerepo=CityFanforCurl -y
​
# CURL将会更新到一个最新的稳定版。

image.png

3. 这时候再输入 curl --version 输出如下:

curl --version

image.png

1692988f6320bc3ad37900e22c18a17d.png

✨方法二:有的会报错 error:Requires: libnghttp2.so.14()(64bit)

image.png

发现文档说 libcurl 建议 7.49.0 及以上版本然后我看了下机子上的版本才7.29

于是上网搜索了一下怎么更新curl及libcurl

方法如下:

  1. 安装 libcurlyum

    rpm -ivh http://mirror.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-2-1.rhel7.noarch.rpm
    
  1. 执行yum upgrade更新

    yum upgrade libcurl curl
    

    然后这里你会发现什么都没有发生要把编辑city-fa源把enabled=0改为enabled=1

    vi /etc/yum.repos.d/city-fan.org.repo
    
  1. 再次执行 yum update curl --enablerepo=CityFanforCurl -y

    Error: Package: libcurl-7.65.1-1.0.cf.rhel7.x86_64 (city-fan.org)
           Requires: libnghttp2.so.14()(64bit)
    

解决方法:

  1. 安装 epel
yum install epel-release -y
  1. 重新执行上面的安装命令然后依然报错 Requires: libnghttp2.so.14()(64bit)

最终解决方法执行:

yum --enablerepo=epel install libnghttp2 -y && yum install libcurl -y
  1. 再次执行 yum update curl --enablerepo=CityFanforCurl -y

最后感谢大家耐心观看完毕,原创不易,留个点赞收藏是您对我最大的鼓励!


🎉总结:

  • 更多参考精彩博文请看这里:《陈永佳的博客》

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!