如何修补和保护OpenSSH客户端漏洞CVE-2015-0777和CVE-2015-0778 [14/Jan/2015]

时间:2020-01-09 10:40:34  来源:igfitidea点击:

OpenSSH项目发布了ssh客户端错误信息,该信息可能会将私钥泄漏到恶意服务器。
在OpenSSH中识别并修复的一种中间人攻击称为CVE-2015-0777和CVE-2015-0778。
如何在Linux或类似Unix的操作系统上修复OpenSSHs客户端漏洞?
在OpenSSH软件中发现并修复了一个严重的安全问题。

2015年1月14日在OpenSSH中发现了两个漏洞。
常见漏洞和披露项目确定了以下问题:

  • 通过OpenSSH客户端漫游:CVE-2015-0777和CVE-2015-0778介于5.4和7.1之间的所有OpenSSH版本都容易受到攻击。
  • CVE-2015-0777流氓SSH服务器可以利用信息泄漏(内存泄露)来诱骗客户端从客户端内存中泄漏敏感数据,包括私钥。
  • CVE-2015-0778恶意SSH服务器也可以利用缓冲区溢出(导致文件描述符泄漏),但是由于代码中的另一个错误可能无法利用,并且仅在某些情况下(不是默认配置) ,当使用ProxyCommand,ForwardAgent或ForwardX11时。

在本教程中,您将学习如何在Linux或Unix之类的系统上修复OpenSSHs客户端和服务器的错误CVE-2015-0777和CVE-2015-0778,包括错误验证。

如何在Linux或类Unix系统上找到openssh版本?

在CentOS/RHEL/SL上查找openssh版本的语法如下:

# yum list installed openssh\*

在Debian/Ubuntu Linux上查找openssh版本的语法如下:

$ dpkg --list | grep openssh
### 或者#
$ dpkg --list openssh\*

输出示例:
查找安装openssh服务器和客户端版本

受影响的Linux发行版列表

  • CentOS Linux 7.x
  • RHEL(RedHat企业Linux)7.x
  • Debian Linux(挤压,微调,jessie,stretch和sid发行)Ubuntu Linux 15.10
  • Ubuntu Linux 15.04
  • Ubuntu Linux 14.04 LTS
  • Ubuntu Linux 12.04 LTS
  • SUSE Linux Enterprise Server 12(SLES 12)
  • SUSE Linux Enterprise Server 12 Service Pack 1(SLES 12 SP1)
  • SUSE Linux Enterprise Server 11 Service Pack 4(SLES 11 SP4)
  • SUSE Linux Enterprise Server 11 Service Pack 3(SLES 11 SP3)
  • openSUSE 13.2
  • openSUSE Leap 42.1

修复#1:如何应用修补程序修复问题(CVE-2015-0777)

根据您的Linux或Unix变体执行命令:

修复FreeBSD上的openssh

## First be root and run command ##
sudo -s
echo 'UseRoaming no' >> /etc/ssh/ssh_config

修复Linux上的openssh

## run as root via sudo ##
echo 'UseRoaming no' | sudo tee -a /etc/ssh/ssh_config

修复Apple Mac OS X上的openssh

## run as normal user ##
echo "UseRoaming no" >> ~/.ssh/config

修复OpenBSD上的openssh

## run as root ##
echo -e 'Host *\nUseRoaming no' >> /etc/ssh/ssh_config

上面所有的命令都将UseRoaming no选项添加到/etc/ssh/ssh_config~/.ssh/configssh客户端配置文件中。
当然,您可以使用以下命令启动ssh客户端会话,以避免出现此错误:

$ ssh -oUseRoaming=no [email protected]
$ ssh -oUseRoaming=no [email protected]

修复#2:升级您的openssh以修复CVE-2015-0778

要修复CVE-2015-0777,只需升级您的所有软件包,或至少升级openssh-server和openssh-client软件包:

Debian/Ubuntu/Mint Linux

执行以下apt-get命令以更新openssh:

$ sudo apt-get update
$ sudo apt-get upgrade

或者

$ sudo apt-get update
$ sudo apt-get install openssh-client openssh-server openssh-sftp-server

SL/RHEL/CentOS Linux

执行以下yum命令来修补和更新openssh:

$ sudo yum update

Fedora Linux

执行以下dnf命令来修补和更新openssh:

$ sudo dnf update

FreeBSD Unix用户

执行以下两个命令以应用二进制修补程序:

# freebsd-update fetch
# freebsd-update install

SUSE Enterprise Linux

SUSE Linux Enterprise Server 12-SP1:

# zypper in -t patch SUSE-SLE-SERVER-12-SP1-2015-85=1

SUSE Linux Enterprise Server 12:

# zypper in -t patch SUSE-SLE-SERVER-12-2015-85=1

SUSE Linux Enterprise Desktop 12-SP1:

# zypper in -t patch SUSE-SLE-DESKTOP-12-SP1-2015-85=1

SUSE Linux Enterprise Desktop 12:

# zypper in -t patch SUSE-SLE-DESKTOP-12-2015-85=1

最后,要使系统最新,请运行:

# zypper patch

openSUSE Leap 42.1

# zypper in -t patch openSUSE-2015-38=1

最后,要使系统最新,请运行:

# zypper patch

如何重启由Linux或Unix驱动的服务器/笔记本电脑/计算机吗?

没有。

验证OpenSSH更新后系统是否仍然受到影响

要检查您的系统是否受到影响,您可以简单地运行:

$ ssh -v user@server
$ ssh -v [email protected]

显示debug1: Roaming not allowed by server表示您的系统受到了影响。
如果按照前面的说明应用修补程序,则不会看到此调试消息。