在 Linux 上修复 Bash Shellshock CVE---

举报
Tiamo_T 发表于 2022/09/14 23:47:27 2022/09/14
【摘要】 CVE-2014-6271 是一个高影响的关键修复。如果你运行的是 Linux 系统,你应该修复这个漏洞。

CVE-2014-6271 是一个高影响的关键修复。如果你运行的是 Linux 系统,你应该修复这个漏洞。

此 CVE-2014-6271(和 CVE-2014-7169)漏洞也称为 Shellshock。

在 Bash 评估某些特制环境变量的方式中发现了一个缺陷。攻击者可以利用此漏洞覆盖或绕过环境限制来执行 shell 命令。某些服务和应用程序允许远程未经身份验证的攻击者提供环境变量,从而允许他们利用此问题。
使用 bash shell,此漏洞允许攻击者在您的环境中执行随机 shell 命令。这背后的想法是攻击者可以绕过环境变量限制,从而允许他执行 shell 命令。

请注意,在 Linux 服务器上运行的某些服务(或应用程序)可能允许未经身份验证的攻击者指定一些环境变量,这反过来又允许他们在没有任何身份验证的情况下通过网络利用此漏洞。

解决此问题所需要做的就是将 bash 升级到最新版本。例如,在 RedHat 或 CentOS 上,执行以下操作来解决此问题:

yum update bash

您的系统是否容易受到 CVE-2014-6271 的影响?

RedHat 提供了以下脚本来测试您的系统是否易受攻击。

如果您在输出中看到“易受攻击”一词,那么您的系统很容易受到攻击。

env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"

请注意,您可能还会在输出中看到一些错误消息以及“易受攻击”一词。例如,以下是易受攻击的 RedHat 5 和 RedHat 6(以及 CentOS 5 和 6)系统上的输出。

# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
vulnerable
bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)'
bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable'
bash: error importing function definition for `BASH_FUNC_x'
test

CVE-2014-6271 是一个高影响的关键修复。如果你运行的是 Linux 系统,你应该修复这个漏洞。

修复前的 Bash 版本

在解决问题之前,请检查您当前的 bash 版本。在 RedHat 5(和 CentOS 5)上,我在修复之前有以下 bash 版本:

# rpm -qa | grep bash
bash-3.2-24.el5

在 RedHat 6(和 CentOS 6)上,我在修复之前有以下 bash 版本:

# rpm -qa | grep bash
bash-4.1.2-3.el6.x86_64

修复 CVE-2014-6271

现在,使用 yum(或其他适合您的发行版的包管理实用程序)更新 bash

yum update bash

在 RedHat 5(和 CentOS 5)上,以下是更新后的 bash 版本,修复了漏洞。

# rpm -qa | grep bash
bash-3.2-33.el5_11.4

在 RedHat 6(和 CentOS 6)上,以下是更新后的 bash 版本,修复了漏洞。

# rpm -qa | grep bash
bash-4.1.2-15.el6_5.2.x86_64

修复后测试 CVE-2014-6271 漏洞

bash 升级到最新版本后,执行测试时,在以下命令输出中不会看到“vulnerable”字样。请注意,下面显示的警告和错误消息是好的。

# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `BASH_FUNC_x'
test

CVE-2014-7169 怎么样?

在最初的修复发布后,redhat 发现 CVE-2014-6271 修复不完整,bash 在某些特殊情况下仍然允许很少的字符可以放入环境变量中。

当您从上一步执行 yum update bash 时,它将自动获取最新版本的 bash,其中还包括 CVE-2014-7169 的修复程序。所以,你真的不必为此修复做任何特定的事情。

但是,您仍然可以通过在系统上执行以下操作来测试以确保您的系统不会受到此问题的影响:

cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo

在易受 CVE-2014-7169 攻击的系统上,您会注意到以下内容创建了文件 /tmp/echo,它会显示文件的内容。

如果您看到以下输出,您应该使用“yum update bash”将您的 bash 更新到最新版本(或为您的发行版使用适当的包管理实用程序)

# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
bash: x: line 1: syntax error near unexpected token `='
bash: x: line 1: `'
bash: error importing function definition for `x'
Fri Sep 26 16:15:09 PDT 2014

如果您的系统不易受到 CVE-2014-7169 的攻击,您将看到以下输出,该输出不会创建 /tmp/echo 文件。

# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
date
cat: /tmp/echo: No such file or directory
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。