自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何修補和保護(hù)Linux內(nèi)核堆棧沖突漏洞CVE-2017-1000364

系統(tǒng) Linux
在 Linux 內(nèi)核中發(fā)現(xiàn)了一個名為 “Stack Clash” 的嚴(yán)重安全問題,攻擊者能夠利用它來破壞內(nèi)存數(shù)據(jù)并執(zhí)行任意代碼。攻擊者可以利用這個及另一個漏洞來執(zhí)行任意代碼并獲得管理帳戶(root)權(quán)限。

在 Linux 內(nèi)核中發(fā)現(xiàn)了一個名為 “Stack Clash” 的嚴(yán)重安全問題,攻擊者能夠利用它來破壞內(nèi)存數(shù)據(jù)并執(zhí)行任意代碼。攻擊者可以利用這個及另一個漏洞來執(zhí)行任意代碼并獲得管理帳戶(root)權(quán)限。

在 Linux 中該如何解決這個問題?

如何修補和保護(hù)Linux內(nèi)核堆棧沖突漏洞CVE-2017-1000364  

the-stack-clash-on-linux-openbsd-netbsd-freebsd-solaris

Qualys 研究實驗室在 GNU C Library(CVE-2017-1000366)的動態(tài)鏈接器中發(fā)現(xiàn)了許多問題,它們通過與 Linux 內(nèi)核內(nèi)的堆棧沖突來允許本地特權(quán)升級。這個 bug 影響到了 i386 和 amd64 上的 Linux、OpenBSD、NetBSD、FreeBSD 和 Solaris。攻擊者可以利用它來破壞內(nèi)存數(shù)據(jù)并執(zhí)行任意代碼。

什么是 CVE-2017-1000364 bug?

來自 RHN:

在用戶空間二進(jìn)制文件的堆棧中分配內(nèi)存的方式發(fā)現(xiàn)了一個缺陷。如果堆(或不同的內(nèi)存區(qū)域)和堆棧內(nèi)存區(qū)域彼此相鄰,則攻擊者可以使用此缺陷跳過堆棧保護(hù)區(qū)域,從而導(dǎo)致進(jìn)程堆?;蛳噜弮?nèi)存區(qū)域的受控內(nèi)存損壞,從而增加其系統(tǒng)權(quán)限。有一個在內(nèi)核中減輕這個漏洞的方法,將堆棧保護(hù)區(qū)域大小從一頁增加到 1 MiB,從而使成功利用這個功能變得困難。

據(jù)原研究文章:

計算機上運行的每個程序都使用一個稱為堆棧的特殊內(nèi)存區(qū)域。這個內(nèi)存區(qū)域是特別的,因為當(dāng)程序需要更多的堆棧內(nèi)存時,它會自動增長。但是,如果它增長太多,并且與另一個內(nèi)存區(qū)域太接近,程序可能會將堆棧與其他內(nèi)存區(qū)域混淆。攻擊者可以利用這種混亂來覆蓋其他內(nèi)存區(qū)域的堆棧,或者反過來。

受到影響的 Linux 發(fā)行版

  • Red Hat Enterprise Linux Server 5.x
  • Red Hat Enterprise Linux Server 6.x
  • Red Hat Enterprise Linux Server 7.x
  • CentOS Linux Server 5.x
  • CentOS Linux Server 6.x
  • CentOS Linux Server 7.x
  • Oracle Enterprise Linux Server 5.x
  • Oracle Enterprise Linux Server 6.x
  • Oracle Enterprise Linux Server 7.x
  • Ubuntu 17.10
  • Ubuntu 17.04
  • Ubuntu 16.10
  • Ubuntu 16.04 LTS
  • Ubuntu 12.04 ESM (Precise Pangolin)
  • Debian 9 stretch
  • Debian 8 jessie
  • Debian 7 wheezy
  • Debian unstable
  • SUSE Linux Enterprise Desktop 12 SP2
  • SUSE Linux Enterprise High Availability 12 SP2
  • SUSE Linux Enterprise Live Patching 12
  • SUSE Linux Enterprise Module for Public Cloud 12
  • SUSE Linux Enterprise Build System Kit 12 SP2
  • SUSE Openstack Cloud Magnum Orchestration 7
  • SUSE Linux Enterprise Server 11 SP3-LTSS
  • SUSE Linux Enterprise Server 11 SP4
  • SUSE Linux Enterprise Server 12 SP1-LTSS
  • SUSE Linux Enterprise Server 12 SP2
  • SUSE Linux Enterprise Server for Raspberry Pi 12 SP2

我需要重啟我的電腦么?

是的,由于大多數(shù)服務(wù)依賴于 GNU C Library 的動態(tài)連接器,并且內(nèi)核自身需要在內(nèi)存中重新加載。

我該如何在 Linux 中修復(fù) CVE-2017-1000364?

根據(jù)你的 Linux 發(fā)行版來輸入命令。你需要重啟電腦。在應(yīng)用補丁之前,記下你當(dāng)前內(nèi)核的版本: 

  1. $ uname -a
  2. $ uname -mrs 

示例輸出:

  1. Linux 4.4.0-78-generic x86_64 

Debian 或者 Ubuntu Linux

輸入下面的 apt 命令 / apt-get 命令來應(yīng)用更新:

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

示例輸出:

  1. Reading package lists... Done 
  2. Building dependency tree        
  3. Reading state information... Done 
  4. Calculating upgrade... Done 
  5. The following packages will be upgraded: 
  6.   libc-bin libc-dev-bin libc-l10n libc6 libc6-dev libc6-i386 linux-compiler-gcc-6-x86 linux-headers-4.9.0-3-amd64 linux-headers-4.9.0-3-common linux-image-4.9.0-3-amd64 
  7.   linux-kbuild-4.9 linux-libc-dev locales multiarch-support 
  8. 14 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 
  9. Need to get 0 B/62.0 MB of archives. 
  10. After this operation, 4,096 B of additional disk space will be used. 
  11. Do you want to continue? [Y/n] y 
  12. Reading changelogs... Done 
  13. Preconfiguring packages ... 
  14. (Reading database ... 115123 files and directories currently installed.) 
  15. Preparing to unpack .../libc6-i386_2.24-11+deb9u1_amd64.deb ... 
  16. Unpacking libc6-i386 (2.24-11+deb9u1) over (2.24-11) ... 
  17. Preparing to unpack .../libc6-dev_2.24-11+deb9u1_amd64.deb ... 
  18. Unpacking libc6-dev:amd64 (2.24-11+deb9u1) over (2.24-11) ... 
  19. Preparing to unpack .../libc-dev-bin_2.24-11+deb9u1_amd64.deb ... 
  20. Unpacking libc-dev-bin (2.24-11+deb9u1) over (2.24-11) ... 
  21. Preparing to unpack .../linux-libc-dev_4.9.30-2+deb9u1_amd64.deb ... 
  22. Unpacking linux-libc-dev:amd64 (4.9.30-2+deb9u1) over (4.9.30-2) ... 
  23. Preparing to unpack .../libc6_2.24-11+deb9u1_amd64.deb ... 
  24. Unpacking libc6:amd64 (2.24-11+deb9u1) over (2.24-11) ... 
  25. Setting up libc6:amd64 (2.24-11+deb9u1) ... 
  26. (Reading database ... 115123 files and directories currently installed.) 
  27. Preparing to unpack .../libc-bin_2.24-11+deb9u1_amd64.deb ... 
  28. Unpacking libc-bin (2.24-11+deb9u1) over (2.24-11) ... 
  29. Setting up libc-bin (2.24-11+deb9u1) ... 
  30. (Reading database ... 115123 files and directories currently installed.) 
  31. Preparing to unpack .../multiarch-support_2.24-11+deb9u1_amd64.deb ... 
  32. Unpacking multiarch-support (2.24-11+deb9u1) over (2.24-11) ... 
  33. Setting up multiarch-support (2.24-11+deb9u1) ... 
  34. (Reading database ... 115123 files and directories currently installed.) 
  35. Preparing to unpack .../0-libc-l10n_2.24-11+deb9u1_all.deb ... 
  36. Unpacking libc-l10n (2.24-11+deb9u1) over (2.24-11) ... 
  37. Preparing to unpack .../1-locales_2.24-11+deb9u1_all.deb ... 
  38. Unpacking locales (2.24-11+deb9u1) over (2.24-11) ... 
  39. Preparing to unpack .../2-linux-compiler-gcc-6-x86_4.9.30-2+deb9u1_amd64.deb ... 
  40. Unpacking linux-compiler-gcc-6-x86 (4.9.30-2+deb9u1) over (4.9.30-2) ... 
  41. Preparing to unpack .../3-linux-headers-4.9.0-3-amd64_4.9.30-2+deb9u1_amd64.deb ... 
  42. Unpacking linux-headers-4.9.0-3-amd64 (4.9.30-2+deb9u1) over (4.9.30-2) ... 
  43. Preparing to unpack .../4-linux-headers-4.9.0-3-common_4.9.30-2+deb9u1_all.deb ... 
  44. Unpacking linux-headers-4.9.0-3-common (4.9.30-2+deb9u1) over (4.9.30-2) ... 
  45. Preparing to unpack .../5-linux-kbuild-4.9_4.9.30-2+deb9u1_amd64.deb ... 
  46. Unpacking linux-kbuild-4.9 (4.9.30-2+deb9u1) over (4.9.30-2) ... 
  47. Preparing to unpack .../6-linux-image-4.9.0-3-amd64_4.9.30-2+deb9u1_amd64.deb ... 
  48. Unpacking linux-image-4.9.0-3-amd64 (4.9.30-2+deb9u1) over (4.9.30-2) ... 
  49. Setting up linux-libc-dev:amd64 (4.9.30-2+deb9u1) ... 
  50. Setting up linux-headers-4.9.0-3-common (4.9.30-2+deb9u1) ... 
  51. Setting up libc6-i386 (2.24-11+deb9u1) ... 
  52. Setting up linux-compiler-gcc-6-x86 (4.9.30-2+deb9u1) ... 
  53. Setting up linux-kbuild-4.9 (4.9.30-2+deb9u1) ... 
  54. Setting up libc-l10n (2.24-11+deb9u1) ... 
  55. Processing triggers for man-db (2.7.6.1-2) ... 
  56. Setting up libc-dev-bin (2.24-11+deb9u1) ... 
  57. Setting up linux-image-4.9.0-3-amd64 (4.9.30-2+deb9u1) ... 
  58. /etc/kernel/postinst.d/initramfs-tools: 
  59. update-initramfs: Generating /boot/initrd.img-4.9.0-3-amd64 
  60. cryptsetup: WARNING: failed to detect canonical device of /dev/md0 
  61. cryptsetup: WARNING: could not determine root device from /etc/fstab 
  62. W: initramfs-tools configuration sets RESUME=UUID=054b217a-306b-4c18-b0bf-0ed85af6c6e1 
  63. W: but no matching swap device is available. 
  64. I: The initramfs will attempt to resume from /dev/md1p1 
  65. I: (UUID=bf72f3d4-3be4-4f68-8aae-4edfe5431670) 
  66. I: Set the RESUME variable to override this. 
  67. /etc/kernel/postinst.d/zz-update-grub: 
  68. Searching for GRUB installation directory ... found: /boot/grub 
  69. Searching for default file ... found: /boot/grub/default 
  70. Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst 
  71. Searching for splash image ... none found, skipping ... 
  72. Found kernel: /boot/vmlinuz-4.9.0-3-amd64 
  73. Found kernel: /boot/vmlinuz-3.16.0-4-amd64 
  74. Updating /boot/grub/menu.lst ... done 
  75. Setting up libc6-dev:amd64 (2.24-11+deb9u1) ... 
  76. Setting up locales (2.24-11+deb9u1) ... 
  77. Generating locales (this might take a while)... 
  78.   en_IN.UTF-8... done 
  79. Generation complete. 
  80. Setting up linux-headers-4.9.0-3-amd64 (4.9.30-2+deb9u1) ... 
  81. Processing triggers for libc-bin (2.24-11+deb9u1) ... 

使用 reboot 命令重啟桌面/服務(wù)器:

  1. $ sudo reboot 

Oracle/RHEL/CentOS/Scientific Linux

輸入下面的 yum 命令: 

  1. $ sudo yum update
  2. $ sudo reboot 

Fedora Linux

輸入下面的 dnf 命令:

  1. $ sudo dnf update 
  2. $ sudo reboot 

Suse Enterprise Linux 或者 Opensuse Linux

輸入下面的 zypper 命令:

  1. $ sudo zypper patch 
  2. $ sudo reboot 

SUSE OpenStack Cloud 6

  1. $ sudo zypper in -t patch SUSE-OpenStack-Cloud-6-2017-996=1 
  2. $ sudo reboot 

SUSE Linux Enterprise Server for SAP 12-SP1

  1. $ sudo zypper in -t patch SUSE-SLE-SAP-12-SP1-2017-996=1 
  2. $ sudo reboot 

SUSE Linux Enterprise Server 12-SP1-LTSS

  1. $ sudo zypper in -t patch SUSE-SLE-SERVER-12-SP1-2017-996=1 
  2. $ sudo reboot 

SUSE Linux Enterprise Module for Public Cloud 12

  1. $ sudo zypper in -t patch SUSE-SLE-Module-Public-Cloud-12-2017-996=1 
  2. $ sudo reboot 

驗證

你需要確認(rèn)你的版本號在 reboot 命令之后改變了。

  1. $ uname -a 
  2. $ uname -r 
  3. $ uname -mrs 

示例輸出:

  1. Linux 4.4.0-81-generic x86_64 

給 OpenBSD 用戶的注意事項

此頁獲取更多信息。

給 Oracle Solaris 的注意事項

見此頁獲取更多信息。

參考

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2017-06-12 15:50:16

2025-03-19 12:57:06

2020-09-25 17:33:03

漏洞

2023-02-28 09:47:42

2010-08-09 09:09:18

2009-12-29 14:25:14

phpXSS漏洞

2017-05-25 22:20:05

2017-09-21 09:22:16

gitssh漏洞

2011-12-31 13:27:25

2017-05-08 07:07:50

2021-08-23 06:59:38

Linux內(nèi)核代碼

2017-05-27 10:22:37

2010-08-06 14:11:12

2023-08-02 09:59:51

2020-10-12 10:28:15

漏洞內(nèi)存破壞網(wǎng)絡(luò)攻擊

2024-03-06 13:27:23

2017-12-21 08:06:40

2021-02-07 14:39:22

Falco漏洞安全工具

2022-02-21 15:19:10

谷歌漏洞Linux

2025-04-09 08:10:00

漏洞零日漏洞移動安全
點贊
收藏

51CTO技術(shù)棧公眾號