GnuPG代码问题漏洞(CVE-2018-12020) 修复
GnuPG 在2.2.7版本之前已存在高危漏洞。 原因是源代码文件mainproc.c中代码存在漏洞,这将会导致在文件名清理不当的情况下,允许显示虚假状态消息并绕过签名验证
如GnuPG 2.2.7版本以及之前的版本是通过编译安装部署,建议升级到2.2.8版本,以修复此漏洞
漏洞描述:http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-201806-580
下面是修复步骤参考
0、备份
如为云服务器,在升级前请备份服务器镜像,避免升级失败或兼容问题导致业务受到影响
1、安装前的准备
1.1 libgpg-error依赖安装
代码语言:txt复制wget https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.40.tar.bz2 --no-check-certificate
tar -jxvf libgpg-error-1.40.tar.bz2
cd libgpg-error-1.40/
./configure
make && make install
echo $?
gpg-error --version
1.2 libgcrypt依赖安装
代码语言:txt复制wget https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.7.0.tar.bz2 --no-check-certificate
tar -jxvf libgcrypt-1.7.0.tar.bz2
cd libgcrypt-1.7.0/
./configure
make && make install
echo $?
libgcrypt-config --version
1.3 libassuan依赖安装
代码语言:txt复制wget https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.1.tar.bz2 --no-check-certificate
tar -jxvf libassuan-2.5.1.tar.bz2
cd libassuan-2.5.1/
./configure
make && make install
echo $?
libassuan-config --version
1.4 npth依赖安装
代码语言:txt复制wget https://gnupg.org/ftp/gcrypt/npth/npth-1.2.tar.bz2 --no-check-certificate
tar -jxvf npth-1.2.tar.bz2
cd npth-1.2/
./configure
make && make install
echo $?
npth-config --version
1.5 libksba 依赖安装
代码语言:txt复制wget https://gnupg.org/ftp/gcrypt/libksba/libksba-1.3.4.tar.bz2 --no-check-certificate
tar -jxvf libksba-1.3.4.tar.bz2
cd libksba-1.3.4/
./configure
make && make install
ksba-config --version
2、开始升级gnupg版本
代码语言:txt复制wget https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.8.tar.bz2 --no-check-certificate
tar -xvjf gnupg-2.2.8.tar.bz2
cd gnupg-2.2.8
./configure
make && make install
echo $?
gpg --version
3、其它问题补充
3.1 库依赖问题
如执行gpg --version
时
报错
代码语言:txt复制gpg: error while loading shared libraries: libgcrypt.so.20: cannot open shared object file: No such file or directory
解决方法
执行
代码语言:txt复制whereis libgcrypt.so.20
查看,库文件的地址,比如返回的路径为:/usr/local/lib/libgcrypt.so.20
则将库写入环境变量即可,如下代码:
代码语言:txt复制echo "export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH" >> /etc/profile.d/gpg.sh
source /etc/profile.d/gpg.sh
3.2 编译问题
编译安装 gnupg-2.2.8请安装较高版本的libgpg-error依赖,不要使用1.2.4版本,否则编译会出错