漏洞详情
漏洞描述:
OpenSSL库中的BN_mod_sqrt()函数在处理非质数时存在解析错误,可能导致无限循环,进而引发拒绝服务攻击。当解析包含压缩形式的椭圆曲线公钥或带有显式椭圆曲线参数的证书时,会调用此函数。攻击者可以通过构造具有无效显式曲线参数的证书来触发此漏洞。
影响范围:
- OpenSSL版本1.0.2系列:从1.0.2至1.0.2zc。
- OpenSSL版本1.1.1系列:从1.1.1至1.1.1m。
- OpenSSL版本3.0系列:3.0.0和3.0.1。
解决方案:
升级openssl到最新版本,目前最新版本为3.4.0;(openssl官方网站)
安装依赖
yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel perl-IPC-Cmd pam-devel wget vim unzip lrzsz
yum install -y pam* zlib*
备份文件
whereis openssl
cp -r /usr/bin/openssl /usr/bin/openssl_backup
cp -r /usr/lib64/openssl /usr/lib64/openssl_backup
cp -r /usr/include/openssl /usr/include/openssl_backup
cp -r /usr/share/man/man1/openssl.1ssl.gz /usr/share/man/man1/openssl.1ssl.gz_backup
安装openssl3.4.0
关闭防火墙
### 查看selinux防火墙状态
sestatus
### 关闭selinux防火墙
setenforce 0
tar包下载并安装
### 创建目录
cd /usr/local/software
### 下载tar包
wget https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz
### 解压
tar -zxf openssl-3.4.0.tar.gz
cd openssl-3.4.0/
### 创建安装目录
mkdir /usr/local/openssl
### 编译安装
./config --prefix=/usr/local/openssl
make && make install
配置OpenSSL
#配置OpenSSL
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
unlink /usr/lib64/libssl.so
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib64/libssl.so /usr/lib64/libssl.so
echo '/usr/local/openssl/lib64' >> /etc/ld.so.conf
ldconfig
ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
验证通过
#查看 openssl 版本
openssl version
ping www.baidu.com