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
下面是修复步骤参考
如为云服务器,在升级前请备份服务器镜像,避免升级失败或兼容问题导致业务受到影响
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
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
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
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
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
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
如执行gpg --version
时
报错
gpg: error while loading shared libraries: libgcrypt.so.20: cannot open shared object file: No such file or directory
解决方法
执行
whereis libgcrypt.so.20
查看,库文件的地址,比如返回的路径为:/usr/local/lib/libgcrypt.so.20
则将库写入环境变量即可,如下代码:
echo "export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH" >> /etc/profile.d/gpg.sh
source /etc/profile.d/gpg.sh
编译安装 gnupg-2.2.8请安装较高版本的libgpg-error依赖,不要使用1.2.4版本,否则编译会出错
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。