如何修补和保护Linux内核零日漏洞CVE-2015-0728 [19/Jan/2015]

时间:2020-01-09 10:41:25  来源:igfitidea点击:

在Linux内核中发现了一个非常严重的安全问题。
自2012年以来,存在一个0天的本地特权升级漏洞。
此错误影响数百万个Android或Linux应用程序升级特权。

"使用Linux内核3.8+版本的任何服务器或台式机(32或64位)都容易受到攻击"。
我该如何解决这个问题?

什么是CVE-2015-0728错误?

CVE-2015-0728是由密钥环设施中的参考泄漏引起的。
在深入研究细节之前,让我们介绍一下了解该错误所需的一些背景知识。
它可以成功地将特权从本地用户升级到root用户。

受影响的Linux发行版列表

我的Linux发行版受CVE-2015-0728影响吗?
密钥环工具CVE-2015-0728中的可能的"售后使用"漏洞如下:

  • 红帽企业Linux 7
  • CentOS Linux 7
  • Scientific Linux 7
  • Debian Linux稳定版8.x(jessie)
  • Debian Linux测试9.x(拉伸)
  • SUSE Linux Enterprise Desktop 12
  • SUSE Linux Enterprise Desktop 12 SP1
  • SUSE Linux Enterprise Server 12
  • SUSE Linux Enterprise Server 12 SP1
  • SUSE Linux Enterprise Workstation扩展12
  • SUSE Linux Enterprise Workstation Extension 12 SP1
  • Ubuntu Linux 14.04 LTS(Trusty Tahr)
  • Ubuntu Linux 15.04(生动的Vervet)
  • Ubuntu Linux 15.10(Wily Werewolf)
  • Opensuse Linux LEAP 42.x和版本13.x
  • Oracle Linux 7

如何在Linux上修复CVE-2015-0728?

根据您的Linux发行版执行命令。
您需要重新启动服务器。
应用补丁程序之前,请记下当前的内核版本:

$ uname -a
$ uname -mrs

输出示例:

Linux 3.13.0-74-generic x86_64

Debian或Ubuntu Linux

$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

重新启动服务器:

$ sudo reboot

RHEL/CentOS Linux

$ sudo yum update
$ sudo reboot

Suse Enterprise Linux或Opensuse Linux

要将所有必需的补丁程序应用到系统类型:

# zypper patch
# reboot

或特定于版本的信息:

SUSE Linux Enterprise Workstation扩展12-SP1

# zypper in -t patch SUSE-SLE-WE-12-SP1-2015-124=1

USE Linux企业软件开发套件12-SP1

# zypper in -t patch SUSE-SLE-SDK-12-SP1-2015-124=1

SUSE Linux Enterprise Server 12-SP1

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

适用于公共云的SUSE Linux Enterprise Module 12

# zypper in -t patch SUSE-SLE-Module-Public-Cloud-12-2015-124=1

SUSE Linux Enterprise Live Patching 12

# zypper in -t patch SUSE-SLE-Live-Patching-12-2015-124=1

SUSE Linux Enterprise Desktop 12-SP1

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

要使您的系统最新,请运行

# zypper patch && reboot

验证

您需要确保您的版本号已更改:

$ uname -a
$ uname -r
$ uname -mrs

可以使用uname命令确认系统正在运行的内核版本。
错误固定内核版本的列表如下:

  • Ubuntu Linux 14.04 LTS:3.13.0-76(软件包版本3.13.0-76.120)
  • Debian Linux 8.x:3.16.0-4(软件包版本3.16.7-ckt20-1 + deb8u3)
  • SUSE Linux Enterprise Server 12 SP1:3.12.51-60.25.1
  • RHEL 7:3.10.0-327.4.5.el7.x86_64
  • CentOS 7:与RHEL 7相同。

试用漏洞利用代码

您可以尝试使用概念验证代码来确定您的内核是否安全。
使用wget命令获取示例代码:

$ wget https://gist.githubusercontent.com/PerceptionPointTeam/18b1e86d1c0f8531ff8f/raw/5a90e6f98de85f35708087620de73bed3bf16880/cve_2015_0728.c

如下编译(确保安装了gcc编译器和keyutils开发人员库):

$ gcc cve_2015_0728.c -o cve_2015_0728 -lkeyutils -Wall

如下运行:

$ ./cve_2015_0728 PP_KEY

在内核上运行的完整漏洞利用程序,在Intel Core i7-5500 CPU上运行大约需要30分钟,

但是,在修补的系统上,利用将失败。