PRF&PUB:20170620 How To Patch and Protect Linux Kernel Stack Clash Vulnerability CVE-2017-1000364 .md

@geekpi
This commit is contained in:
wxy 2017-07-11 22:37:54 +08:00
parent a79f28e3f3
commit 69dbeb2f3b

View File

@ -1,79 +1,54 @@
如何修补和保护 Linux 内核堆栈冲突漏洞 CVE-2017-1000364 [ 2017.6.19 ] 如何修补和保护 Linux 内核堆栈冲突漏洞 CVE-2017-1000364
============================================================ ============================================================
[![](https://www.cyberciti.biz/media/new/category/old/linux-logo.png)][12] 在 Linux 内核中发现了一个名为 “Stack Clash” 的严重安全问题,攻击者可能会利用它来破坏内存并执行任意代码。攻击者可以利用另一个漏洞来执行任意代码并获得管理/root 帐户权限。在 Linux 中该如何解决这个问题? 在 Linux 内核中发现了一个名为 “Stack Clash” 的严重安全问题攻击者能够利用它来破坏内存数据并执行任意代码。攻击者可以利用这个及另一个漏洞来执行任意代码并获得管理帐户root权限。
在 Linux 中该如何解决这个问题?
[![the-stack-clash-on-linux-openbsd-netbsd-freebsd-solaris](https://www.cyberciti.biz/media/new/faq/2017/06/the-stack-clash-on-linux-openbsd-netbsd-freebsd-solaris.jpeg)][22] [![the-stack-clash-on-linux-openbsd-netbsd-freebsd-solaris](https://www.cyberciti.biz/media/new/faq/2017/06/the-stack-clash-on-linux-openbsd-netbsd-freebsd-solaris.jpeg)][22]
Qualys 研究实验室在 GNU C LibraryCVE-2017-1000366的动态链接器中发现了许多问题它们通过与 Linux 内核的堆栈冲突来允许本地特权升级。这个 bug 在 i386 和 amd64 上影响 Linux、OpenBSD、NetBSD、FreeBSD 和 Solaris。攻击者可以利用它来破坏内存并执行任意代码。
Qualys 研究实验室在 GNU C LibraryCVE-2017-1000366的动态链接器中发现了许多问题它们通过与 Linux 内核内的堆栈冲突来允许本地特权升级。这个 bug 影响到了 i386 和 amd64 上的 Linux、OpenBSD、NetBSD、FreeBSD 和 Solaris。攻击者可以利用它来破坏内存数据并执行任意代码。
### 什么是 CVE-2017-1000364 bug ### 什么是 CVE-2017-1000364 bug
[来自 RHN][13]: [来自 RHN][13]
> 在用户空间二进制文件的堆栈中分配内存的方式发现了一个缺陷。如果堆(或不同的内存区域)和堆栈内存区域彼此相邻,则攻击者可以使用此缺陷跳过堆栈保护区域,从而导致进程堆栈或相邻内存区域受制的内存损坏,从而增加其系统权限。有一个在内核中减轻这个漏洞的方法,将堆栈保护区域大小从一页增加到 1 MiB从而使成功利用这个功能变得困难。 > 在用户空间二进制文件的堆栈中分配内存的方式发现了一个缺陷。如果堆(或不同的内存区域)和堆栈内存区域彼此相邻,则攻击者可以使用此缺陷跳过堆栈保护区域,从而导致进程堆栈或相邻内存区域受控内存损坏,从而增加其系统权限。有一个在内核中减轻这个漏洞的方法,将堆栈保护区域大小从一页增加到 1 MiB从而使成功利用这个功能变得困难。
[As per the original research post][14]: [据原研究文章][14]
> 计算机上运行的每个程序都使用一个称为堆栈的特殊内存区域。这个内存区域是特别的,因为当程序需要更多的堆栈内存时,它会自动增长。但是,如果它增长太多,并且与另一个内存区域太接近,程序可能会将堆栈与其他内存区域混淆。攻击者可以利用这种混乱来覆盖其他内存区域的堆栈,或者反过来。 > 计算机上运行的每个程序都使用一个称为堆栈的特殊内存区域。这个内存区域是特别的,因为当程序需要更多的堆栈内存时,它会自动增长。但是,如果它增长太多,并且与另一个内存区域太接近,程序可能会将堆栈与其他内存区域混淆。攻击者可以利用这种混乱来覆盖其他内存区域的堆栈,或者反过来。
### 到影响的 Linux 发行版 ### 到影响的 Linux 发行版
1. Red Hat Enterprise Linux Server 5.x 1. Red Hat Enterprise Linux Server 5.x
2. Red Hat Enterprise Linux Server 6.x 2. Red Hat Enterprise Linux Server 6.x
3. Red Hat Enterprise Linux Server 7.x 3. Red Hat Enterprise Linux Server 7.x
4. CentOS Linux Server 5.x 4. CentOS Linux Server 5.x
5. CentOS Linux Server 6.x 5. CentOS Linux Server 6.x
6. CentOS Linux Server 7.x 6. CentOS Linux Server 7.x
7. Oracle Enterprise Linux Server 5.x 7. Oracle Enterprise Linux Server 5.x
8. Oracle Enterprise Linux Server 6.x 8. Oracle Enterprise Linux Server 6.x
9. Oracle Enterprise Linux Server 7.x 9. Oracle Enterprise Linux Server 7.x
10. Ubuntu 17.10 10. Ubuntu 17.10
11. Ubuntu 17.04 11. Ubuntu 17.04
12. Ubuntu 16.10 12. Ubuntu 16.10
13. Ubuntu 16.04 LTS 13. Ubuntu 16.04 LTS
14. Ubuntu 12.04 ESM (Precise Pangolin) 14. Ubuntu 12.04 ESM (Precise Pangolin)
15. Debian 9 stretch 15. Debian 9 stretch
16. Debian 8 jessie 16. Debian 8 jessie
17. Debian 7 wheezy 17. Debian 7 wheezy
18. Debian unstable 18. Debian unstable
19. SUSE Linux Enterprise Desktop 12 SP2 19. SUSE Linux Enterprise Desktop 12 SP2
20. SUSE Linux Enterprise High Availability 12 SP2 20. SUSE Linux Enterprise High Availability 12 SP2
21. SUSE Linux Enterprise Live Patching 12 21. SUSE Linux Enterprise Live Patching 12
22. SUSE Linux Enterprise Module for Public Cloud 12 22. SUSE Linux Enterprise Module for Public Cloud 12
23. SUSE Linux Enterprise Build System Kit 12 SP2 23. SUSE Linux Enterprise Build System Kit 12 SP2
24. SUSE Openstack Cloud Magnum Orchestration 7 24. SUSE Openstack Cloud Magnum Orchestration 7
25. SUSE Linux Enterprise Server 11 SP3-LTSS 25. SUSE Linux Enterprise Server 11 SP3-LTSS
26. SUSE Linux Enterprise Server 11 SP4 26. SUSE Linux Enterprise Server 11 SP4
27. SUSE Linux Enterprise Server 12 SP1-LTSS 27. SUSE Linux Enterprise Server 12 SP1-LTSS
28. SUSE Linux Enterprise Server 12 SP2 28. SUSE Linux Enterprise Server 12 SP2
29. SUSE Linux Enterprise Server for Raspberry Pi 12 SP2 29. SUSE Linux Enterprise Server for Raspberry Pi 12 SP2
### 我需要重启我的电脑么? ### 我需要重启我的电脑么?
@ -82,9 +57,13 @@ Qualys 研究实验室在 GNU C LibraryCVE-2017-1000366的动态链接器
### 我该如何在 Linux 中修复 CVE-2017-1000364 ### 我该如何在 Linux 中修复 CVE-2017-1000364
根据你的 Linux 发行版输入命令。你需要重启电脑。在应用补丁之前,记下你当前内核的版本: 根据你的 Linux 发行版来输入命令。你需要重启电脑。在应用补丁之前,记下你当前内核的版本:
`$ uname -a
$ uname -mrs` ```
$ uname -a
$ uname -mrs
```
示例输出: 示例输出:
``` ```
@ -93,8 +72,12 @@ Linux 4.4.0-78-generic x86_64
### Debian 或者 Ubuntu Linux ### Debian 或者 Ubuntu Linux
输入下面的[ apt 命令][15]/[apt-get 命令][16]来应用更新: 输入下面的 [apt 命令][15] / [apt-get 命令][16]来应用更新:
`$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade`
```
$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
```
示例输出: 示例输出:
``` ```
@ -182,53 +165,77 @@ Setting up linux-headers-4.9.0-3-amd64 (4.9.30-2+deb9u1) ...
Processing triggers for libc-bin (2.24-11+deb9u1) ... Processing triggers for libc-bin (2.24-11+deb9u1) ...
``` ```
使用[ reboot 命令][17]重启桌面/服务器: 使用 [reboot 命令][17]重启桌面/服务器:
`$ sudo reboot`
```
$ sudo reboot
```
### Oracle/RHEL/CentOS/Scientific Linux ### Oracle/RHEL/CentOS/Scientific Linux
输入下面的[ yum 命令][18] 输入下面的 [yum 命令][18]
`$ sudo yum update
$ sudo reboot` ```
$ sudo yum update
$ sudo reboot
```
### Fedora Linux ### Fedora Linux
输入下面的 dnf 命令: 输入下面的 dnf 命令:
`$ sudo dnf update
$ sudo reboot` ```
$ sudo dnf update
$ sudo reboot
```
### Suse Enterprise Linux 或者 Opensuse Linux ### Suse Enterprise Linux 或者 Opensuse Linux
输入下面的 zypper 命令: 输入下面的 zypper 命令:
`$ sudo zypper patch
$ sudo reboot` ```
$ sudo zypper patch
$ sudo reboot
```
### SUSE OpenStack Cloud 6 ### SUSE OpenStack Cloud 6
`$ sudo zypper in -t patch SUSE-OpenStack-Cloud-6-2017-996=1 ```
$ sudo reboot` $ sudo zypper in -t patch SUSE-OpenStack-Cloud-6-2017-996=1
$ sudo reboot
```
### SUSE Linux Enterprise Server for SAP 12-SP1 ### SUSE Linux Enterprise Server for SAP 12-SP1
`$ sudo zypper in -t patch SUSE-SLE-SAP-12-SP1-2017-996=1 ```
$ sudo reboot` $ sudo zypper in -t patch SUSE-SLE-SAP-12-SP1-2017-996=1
$ sudo reboot
```
### SUSE Linux Enterprise Server 12-SP1-LTSS ### SUSE Linux Enterprise Server 12-SP1-LTSS
`$ sudo zypper in -t patch SUSE-SLE-SERVER-12-SP1-2017-996=1 ```
$ sudo reboot` $ sudo zypper in -t patch SUSE-SLE-SERVER-12-SP1-2017-996=1
$ sudo reboot
```
### SUSE Linux Enterprise Module for Public Cloud 12 ### SUSE Linux Enterprise Module for Public Cloud 12
`$ sudo zypper in -t patch SUSE-SLE-Module-Public-Cloud-12-2017-996=1 ```
$ sudo reboot` $ sudo zypper in -t patch SUSE-SLE-Module-Public-Cloud-12-2017-996=1
$ sudo reboot
```
### 验证 ### 验证
你需要确认你的版本号在 [reboot 命令][19]之后改变了。 你需要确认你的版本号在 [reboot 命令][19]之后改变了。
`$ uname -a
```
$ uname -a
$ uname -r $ uname -r
$ uname -mrs` $ uname -mrs
```
示例输出: 示例输出:
``` ```
@ -252,15 +259,15 @@ Linux 4.4.0-81-generic x86_64
Vivek Gite Vivek Gite
作者是 nixCraft 的创始人,对于 Linux 操作系统/Unix shell脚本有经验丰富的系统管理员和培训师。他曾与全球客户及各行各业包括IT、教育、国防和空间研究以及非营利部门合作。在 [Twitter][1]、[Facebook] [2]、[Google +] [3] 上关注他。 作者是 nixCraft 的创始人,对于 Linux 操作系统/Unix shell脚本有经验丰富的系统管理员和培训师。他曾与全球客户及各行各业包括 IT、教育、国防和空间研究以及非营利部门合作。在 [Twitter][1]、[Facebook] [2]、[Google +] [3] 上关注他。
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
via: https://www.cyberciti.biz/faq/howto-patch-linux-kernel-stack-clash-vulnerability-cve-2017-1000364/ via: https://www.cyberciti.biz/faq/howto-patch-linux-kernel-stack-clash-vulnerability-cve-2017-1000364/
作者:[Vivek Gite ][a] 作者:[Vivek Gite][a]
译者:[geekpi](https://github.com/geekpi) 译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出