标签 安全漏洞 下的文章

在 Linux 内核中发现了一个名为 “Stack Clash” 的严重安全问题,攻击者能够利用它来破坏内存数据并执行任意代码。攻击者可以利用这个及另一个漏洞来执行任意代码并获得管理帐户(root)权限。

在 Linux 中该如何解决这个问题?

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

Qualys 研究实验室在 GNU C Library(CVE-2017-1000366)的动态链接器中发现了许多问题,它们通过与 Linux 内核内的堆栈冲突来允许本地特权升级。这个 bug 影响到了 i386 和 amd64 上的 Linux、OpenBSD、NetBSD、FreeBSD 和 Solaris。攻击者可以利用它来破坏内存数据并执行任意代码。

什么是 CVE-2017-1000364 bug?

来自 RHN

在用户空间二进制文件的堆栈中分配内存的方式发现了一个缺陷。如果堆(或不同的内存区域)和堆栈内存区域彼此相邻,则攻击者可以使用此缺陷跳过堆栈保护区域,从而导致进程堆栈或相邻内存区域的受控内存损坏,从而增加其系统权限。有一个在内核中减轻这个漏洞的方法,将堆栈保护区域大小从一页增加到 1 MiB,从而使成功利用这个功能变得困难。

据原研究文章

计算机上运行的每个程序都使用一个称为堆栈的特殊内存区域。这个内存区域是特别的,因为当程序需要更多的堆栈内存时,它会自动增长。但是,如果它增长太多,并且与另一个内存区域太接近,程序可能会将堆栈与其他内存区域混淆。攻击者可以利用这种混乱来覆盖其他内存区域的堆栈,或者反过来。

受到影响的 Linux 发行版

  1. Red Hat Enterprise Linux Server 5.x
  2. Red Hat Enterprise Linux Server 6.x
  3. Red Hat Enterprise Linux Server 7.x
  4. CentOS Linux Server 5.x
  5. CentOS Linux Server 6.x
  6. CentOS Linux Server 7.x
  7. Oracle Enterprise Linux Server 5.x
  8. Oracle Enterprise Linux Server 6.x
  9. Oracle Enterprise Linux Server 7.x
  10. Ubuntu 17.10
  11. Ubuntu 17.04
  12. Ubuntu 16.10
  13. Ubuntu 16.04 LTS
  14. Ubuntu 12.04 ESM (Precise Pangolin)
  15. Debian 9 stretch
  16. Debian 8 jessie
  17. Debian 7 wheezy
  18. Debian unstable
  19. SUSE Linux Enterprise Desktop 12 SP2
  20. SUSE Linux Enterprise High Availability 12 SP2
  21. SUSE Linux Enterprise Live Patching 12
  22. SUSE Linux Enterprise Module for Public Cloud 12
  23. SUSE Linux Enterprise Build System Kit 12 SP2
  24. SUSE Openstack Cloud Magnum Orchestration 7
  25. SUSE Linux Enterprise Server 11 SP3-LTSS
  26. SUSE Linux Enterprise Server 11 SP4
  27. SUSE Linux Enterprise Server 12 SP1-LTSS
  28. SUSE Linux Enterprise Server 12 SP2
  29. SUSE Linux Enterprise Server for Raspberry Pi 12 SP2

我需要重启我的电脑么?

是的,由于大多数服务依赖于 GNU C Library 的动态连接器,并且内核自身需要在内存中重新加载。

我该如何在 Linux 中修复 CVE-2017-1000364?

根据你的 Linux 发行版来输入命令。你需要重启电脑。在应用补丁之前,记下你当前内核的版本:

$ uname -a
$ uname -mrs

示例输出:

Linux 4.4.0-78-generic x86_64

Debian 或者 Ubuntu Linux

输入下面的 apt 命令 / apt-get 命令来应用更新:

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

示例输出:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  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
  linux-kbuild-4.9 linux-libc-dev locales multiarch-support
14 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/62.0 MB of archives.
After this operation, 4,096 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Reading changelogs... Done
Preconfiguring packages ...
(Reading database ... 115123 files and directories currently installed.)
Preparing to unpack .../libc6-i386_2.24-11+deb9u1_amd64.deb ...
Unpacking libc6-i386 (2.24-11+deb9u1) over (2.24-11) ...
Preparing to unpack .../libc6-dev_2.24-11+deb9u1_amd64.deb ...
Unpacking libc6-dev:amd64 (2.24-11+deb9u1) over (2.24-11) ...
Preparing to unpack .../libc-dev-bin_2.24-11+deb9u1_amd64.deb ...
Unpacking libc-dev-bin (2.24-11+deb9u1) over (2.24-11) ...
Preparing to unpack .../linux-libc-dev_4.9.30-2+deb9u1_amd64.deb ...
Unpacking linux-libc-dev:amd64 (4.9.30-2+deb9u1) over (4.9.30-2) ...
Preparing to unpack .../libc6_2.24-11+deb9u1_amd64.deb ...
Unpacking libc6:amd64 (2.24-11+deb9u1) over (2.24-11) ...
Setting up libc6:amd64 (2.24-11+deb9u1) ...
(Reading database ... 115123 files and directories currently installed.)
Preparing to unpack .../libc-bin_2.24-11+deb9u1_amd64.deb ...
Unpacking libc-bin (2.24-11+deb9u1) over (2.24-11) ...
Setting up libc-bin (2.24-11+deb9u1) ...
(Reading database ... 115123 files and directories currently installed.)
Preparing to unpack .../multiarch-support_2.24-11+deb9u1_amd64.deb ...
Unpacking multiarch-support (2.24-11+deb9u1) over (2.24-11) ...
Setting up multiarch-support (2.24-11+deb9u1) ...
(Reading database ... 115123 files and directories currently installed.)
Preparing to unpack .../0-libc-l10n_2.24-11+deb9u1_all.deb ...
Unpacking libc-l10n (2.24-11+deb9u1) over (2.24-11) ...
Preparing to unpack .../1-locales_2.24-11+deb9u1_all.deb ...
Unpacking locales (2.24-11+deb9u1) over (2.24-11) ...
Preparing to unpack .../2-linux-compiler-gcc-6-x86_4.9.30-2+deb9u1_amd64.deb ...
Unpacking linux-compiler-gcc-6-x86 (4.9.30-2+deb9u1) over (4.9.30-2) ...
Preparing to unpack .../3-linux-headers-4.9.0-3-amd64_4.9.30-2+deb9u1_amd64.deb ...
Unpacking linux-headers-4.9.0-3-amd64 (4.9.30-2+deb9u1) over (4.9.30-2) ...
Preparing to unpack .../4-linux-headers-4.9.0-3-common_4.9.30-2+deb9u1_all.deb ...
Unpacking linux-headers-4.9.0-3-common (4.9.30-2+deb9u1) over (4.9.30-2) ...
Preparing to unpack .../5-linux-kbuild-4.9_4.9.30-2+deb9u1_amd64.deb ...
Unpacking linux-kbuild-4.9 (4.9.30-2+deb9u1) over (4.9.30-2) ...
Preparing to unpack .../6-linux-image-4.9.0-3-amd64_4.9.30-2+deb9u1_amd64.deb ...
Unpacking linux-image-4.9.0-3-amd64 (4.9.30-2+deb9u1) over (4.9.30-2) ...
Setting up linux-libc-dev:amd64 (4.9.30-2+deb9u1) ...
Setting up linux-headers-4.9.0-3-common (4.9.30-2+deb9u1) ...
Setting up libc6-i386 (2.24-11+deb9u1) ...
Setting up linux-compiler-gcc-6-x86 (4.9.30-2+deb9u1) ...
Setting up linux-kbuild-4.9 (4.9.30-2+deb9u1) ...
Setting up libc-l10n (2.24-11+deb9u1) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up libc-dev-bin (2.24-11+deb9u1) ...
Setting up linux-image-4.9.0-3-amd64 (4.9.30-2+deb9u1) ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.9.0-3-amd64
cryptsetup: WARNING: failed to detect canonical device of /dev/md0
cryptsetup: WARNING: could not determine root device from /etc/fstab
W: initramfs-tools configuration sets RESUME=UUID=054b217a-306b-4c18-b0bf-0ed85af6c6e1
W: but no matching swap device is available.
I: The initramfs will attempt to resume from /dev/md1p1
I: (UUID=bf72f3d4-3be4-4f68-8aae-4edfe5431670)
I: Set the RESUME variable to override this.
/etc/kernel/postinst.d/zz-update-grub:
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-4.9.0-3-amd64
Found kernel: /boot/vmlinuz-3.16.0-4-amd64
Updating /boot/grub/menu.lst ... done

Setting up libc6-dev:amd64 (2.24-11+deb9u1) ...
Setting up locales (2.24-11+deb9u1) ...
Generating locales (this might take a while)...
  en_IN.UTF-8... done
Generation complete.
Setting up linux-headers-4.9.0-3-amd64 (4.9.30-2+deb9u1) ...
Processing triggers for libc-bin (2.24-11+deb9u1) ...

使用 reboot 命令重启桌面/服务器:

$ sudo reboot

Oracle/RHEL/CentOS/Scientific Linux

输入下面的 yum 命令

$ sudo yum update
$ sudo reboot

Fedora Linux

输入下面的 dnf 命令:

$ sudo dnf update
$ sudo reboot

Suse Enterprise Linux 或者 Opensuse Linux

输入下面的 zypper 命令:

$ sudo zypper patch
$ sudo reboot

SUSE OpenStack Cloud 6

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

SUSE Linux Enterprise Server for SAP 12-SP1

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

SUSE Linux Enterprise Server 12-SP1-LTSS

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

SUSE Linux Enterprise Module for Public Cloud 12

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

验证

你需要确认你的版本号在 reboot 命令之后改变了。

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

示例输出:

Linux 4.4.0-81-generic x86_64

给 OpenBSD 用户的注意事项

此页获取更多信息。

给 Oracle Solaris 的注意事项

见此页获取更多信息。

参考


作者简介:

Vivek Gite

作者是 nixCraft 的创始人,对于 Linux 操作系统/Unix shell脚本有经验丰富的系统管理员和培训师。他曾与全球客户及各行各业,包括 IT、教育、国防和空间研究以及非营利部门合作。在 TwitterFacebookGoogle + 上关注他。


via: https://www.cyberciti.biz/faq/howto-patch-linux-kernel-stack-clash-vulnerability-cve-2017-1000364/

作者:Vivek Gite 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

2015年1月27日,GNU C库(glibc)的一个漏洞也称鬼影漏洞(GHOST)被公诸于众。总的来说,这个漏洞允许远程攻击者利用glibc中的GetHOST函数的缓冲区溢出漏洞来获得系统的完全控制。点击这里获得更多细节。

鬼影漏洞可在版本在glibc-2.18之前的Linux系统上被利用。也就是说没有打过补丁的版本2.2到2.17都是有风险的。

检查系统漏洞

你可以使用下面的命令来检查glib的版本

ldd --version

输出

ldd (Ubuntu GLIBC 2.19-10ubuntu2) 2.19 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.

glib的版本应该高于2.17,我们的输出是2.19。如果你看到glib的版本在2.2到2.17之间。你应该运行下面的命令。

sudo apt-get update

sudo apt-get dist-upgrade

安装完之后,你应该用下面的命令重启系统。

sudo reboot

重启完成之后,你可以用同样的命令来检查glib的版本。


via: http://www.ubuntugeek.com/how-to-protect-ubuntu-server-against-the-ghost-vulnerability.html

作者:ruchi 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

建议用户马上更新可用的补丁

WordPress validating pingback’s post URL

这个漏洞之前由Qualys的安全研究员发现,并取了绰号叫Ghost,可以利用WordPress或其他PHP应用来攻击网站服务器。

这个瑕疵是一个缓冲区溢出问题,可以被攻击者触发用来获取Linux主机的命令行执行权限。发生在glibc的“\_\_nss\_hostname\_digits\_dots()”函数中,它会被“gethostbyname()”函数用到。

PHP应用可以用来利用这个瑕疵

Sucuri的Marc-Alexandre Montpas说之所以这个问题很重要是因为这些函数在大量软件和服务器系统使用。

“说这是个严重问题的一个例子是WordPress本身:它使用一个叫wp\_http\_validate\_url()的函数来验证每个pingback的发送URL,它是通过PHP应用的“gethostbyname()”函数替代来执行的”,他在周三的一篇博客文章里写到。

攻击者可以用这种方式来引入一个设计用来触发服务器端漏洞的恶意URL,从而获得系统访问权限。

实际上,Trustwave的安全研究人员提供了验证代码,可以使用WordPress的pingback功能引起缓冲区溢出。

多个Linux发行版受到影响

ghost漏洞存在于glibc 2.17以上版本中,发布于2013年5月21日。glibc当前版本是2.20,发布于2014年9月。

不过,当时并没有升级为一个安全补丁,许多发行版并没有包含进去,特别是提供长期支持(LTS)的发行版。

受影响的系统包括Debian 7(wheezy),Red Hat企业版Linux 6和7,CentOS 6和7,Ubuntu 12.04。幸运的是,Linux供应商已经开始发布可以减轻风险的升级补丁。建议用户马上下载并更新。

为了展示这个漏洞,Qualys建立了一个利用它通过Exim邮件服务器运行远程代码的试验页面。这家安全公司声称在这个漏洞丢掉半条命之前不会关闭这个页面,意思是受影响的系统的数量降到50%的水平。

Linux上存在漏洞的应用包括clockdiff,ping和arping(在某些特定情况下),procmail,pppd,和Exim邮件服务器。


via: http://news.softpedia.com/news/WordPress-Can-Be-Used-to-Leverage-Critical-Ghost-Flaw-in-Linux-471730.shtml

作者:Ionut Ilascu 译者:zpl1025 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

据 Tomcat 安全组确认,Tomcat 全系列产品均被发现严重安全漏洞:CVE-2014-0227 请求夹带漏洞。

级别:严重

受影响版本:

  • Apache Tomcat 8.0.0-RC1 to 8.0.8
  • Apache Tomcat 7.0.0 to 7.0.54
  • Apache Tomcat 6.0.0 to 6.0.41

描述:可以通过构造一个截断请求而在请求数据中夹带一个新的请求。

解决方案

升级到最新版本:

  • 升级到 Apache Tomcat 8.0.9 及其以上
  • 升级到 Apache Tomcat 7.0.55 及其以上
  • 升级到 Apache Tomcat 6.0.43 及其以上(6.0.42 包含了该修复,但是并未发布)

Linux 用户今天又得到了一个“惊喜”! Red Hat 安全团队在 Linux 中广泛使用的 Bash shell 中发现了一个隐晦而危险的安全漏洞。该漏洞被称作“Bash Bug”或“Shellshock”。

当用户正常访问,该漏洞允许攻击者的代码像在 shell 中一样执行,这就为各种各样的攻击打开了方便之门。而且,更糟糕的是该漏洞已经在 Linux 中存在很久了,所以修补某个 Linux 机器很容易,但是要全部修补,几乎不可能完成。

Red Hat 和 Fedora 已经发布了针对该漏洞的修补程序。该漏洞也会影响 OS X,不过苹果公司尚未发布正式的修补程序。

这个 Bash 漏洞可能比 Heartbleed 更危险。
— — Robert Graham (@ErrataRob) 2014 年 9 月 24 日

Red Hat 的 Errata Security 团队的 Robert David Graham 比较了这个安全漏洞和 Heartbleed 的风险,该漏洞分布更广泛,有可能对系统安全带来长期影响。Graham 在一篇博客文章中写道,“有大量的软件以某种方式与 shell 交互,我们没有办法列举受到该漏洞影响的所有软件。”据 Verge 得到的消息,Berkeley ICSI 的研究员Nicholas Weaver 也悲观的同意这个说法:“它很隐晦、很可怕,并且将会伴随我们多年。”

网络安全公司Rapid7工程部经理 Tod Beardsley 警告称,Bash漏洞的严重级别为“10”,意味着它对用户电脑的威胁最大。Bash漏洞的利用复杂度级别为“低”,意味着黑客可以相对轻松地利用它发动攻击。

另有网络安全公司Trail of Bits的CEO Dan Guido表示,“Heartbleed”漏洞能够允许黑客监控用户电脑,但不会取得控制权。而利用Bash漏洞的方法也更简单——只需要剪切和粘贴一行代码即可。

据称,谷歌安全研究员 Tavis Ormandy 在Twitter上表示,Linux系统提供商推出的补丁似乎“并不完整”,这引发了几位安全专家的担忧。

已知受到影响的 Linux 发行版和软件包括:

  • Ubuntu Ubuntu Linux 12.04 LTS i386/amd64
  • Ubuntu Ubuntu Linux 10.04 sparc/powerpc/i386/ARM/amd64
  • GNU GNU bash 3.1.4/3.0.16/4.2/4.1/4.0 RC1/4.0/3.2.48/3.2/3.00.0(2)/3.0
  • Debian Linux 6.0 sparc/s390/powerpc/mips/ia-64/ia-32/arm/amd64
  • CentOS CentOS 5

更多技术细节,可以参考:

Canonical宣布存在于Ubuntu 14.04 LTS,Ubuntu 13.10,Ubuntu 12.10,Ubuntu 12.04 LTS以及Ubuntu 10.04 LTS操作系统中的dpkg漏洞已经被修复。

Canonical公司刚刚放出dpkg包的一个更新,修复了这个用于所有Ubuntu版本的重要软件中的一个问题。

“我们发现这个问题出现在dpkg在解压源码包的时候,它会使dpkg不能正确地处理某些补丁。如果一位用户或一个自动化系统被欺骗而解压了特别修改过的源码包,远程攻击者就能修改目标解压路径之外的文件,导致拒绝服务攻击或潜在的获取系统权限的风险。”安全通知中这样写道。

想了解这个问题的更多细节描述,你可以查看Canonical的安全通知。Canonical建议用户尽快升级自己的系统。

如果你将各个发行版系统的libdpkg-perl包升级到最新版本即可修复这个漏洞。要安装这个更新,你只需运行更新管理器/软件更新器即可。

一般来说,一个普通的系统更新就可以完成所有必需的改动,用户不必重启PC或笔记本来应用这个补丁。这个更新同样可以在终端中实现,只需使用 apt-get dist-upgrade 命令。


via: http://news.softpedia.com/news/Dpkg-Vulnerabilities-Closed-in-Ubuntu-14-04-446282.shtml

译者:alim0x 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出