小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
📖前言
心态好了,就没那么累了。心情好了,所见皆是明媚风景。
“一时解决不了的问题,那就利用这个契机,看清自己的局限性,对自己进行一场拨乱反正。”正如老话所说,一念放下,万般自在。如果你正被烦心事扰乱心神,不妨学会断舍离。断掉胡思乱想,社区垃圾情绪,离开负面能量。心态好了,就没那么累了。心情好了,所见皆是明媚风景。
📖问题背景
Liunx centos7 下 Haxx 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将会更新到一个最新的稳定版。
3. 这时候再输入 curl --version 输出如下:
curl --version
✨方法二:有的会报错 error:Requires: libnghttp2.so.14()(64bit)
发现文档说 libcurl 建议 7.49.0 及以上版本然后我看了下机子上的版本才7.29
于是上网搜索了一下怎么更新curl及libcurl
方法如下:
-
安装
libcurl的yum源rpm -ivh http://mirror.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-2-1.rhel7.noarch.rpm
-
执行yum upgrade更新
yum upgrade libcurl curl然后这里你会发现什么都没有发生要把编辑city-fa源把
enabled=0改为enabled=1vi /etc/yum.repos.d/city-fan.org.repo
-
再次执行
yum update curl --enablerepo=CityFanforCurl -yError: Package: libcurl-7.65.1-1.0.cf.rhel7.x86_64 (city-fan.org) Requires: libnghttp2.so.14()(64bit)
解决方法:
- 安装
epel源
yum install epel-release -y
- 重新执行上面的安装命令然后依然报错
Requires: libnghttp2.so.14()(64bit)
最终解决方法执行:
yum --enablerepo=epel install libnghttp2 -y && yum install libcurl -y
- 再次执行
yum update curl --enablerepo=CityFanforCurl -y
最后感谢大家耐心观看完毕,原创不易,留个点赞收藏是您对我最大的鼓励!
🎉总结:
-
更多参考精彩博文请看这里:《陈永佳的博客》
-
喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!