今天早上上班时我读了 A Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271) 这篇文章。我在我负责的大多数系统上更新了Bash,但是,有人要求我在几台FreeBSD服务器上升级Bash。
如何检查FreeBSD上运行的Bash版本以及如何修补它以摆脱此漏洞利用?
答案 0 :(得分:8)
您可以使用
验证已安装的bash
版本
pkg info bash
bash
的修补版本为already in the ports tree,因此您可以像升级任何应用程序一样升级它。
包构建服务器场重建bash
后,您可以像升级任何包一样升级bash
,
pkg upgrade bash
如果您不熟悉pkg
,请阅读appropriate chapter in the Handbook。
重要说明。在撰写本文时,似乎该软件包尚不可用,因此以下是从源代码构建您自己的软件包的手动过程:
1。在尝试升级之前,请务必upgrade your ports tree。
2. 将您的shell移至ports目录并构建
cd /usr/ports/shell/bash
make BATCH=yes build
3。用
替换旧的batch
make BATCH=yes deinstall
make BATCH=yes reinstall
答案 1 :(得分:0)
从this Ask Ubuntu answer开始,检查此命令的命令是:
env x='() { :;}; echo vulnerable' bash -c 'echo hello'
如果你得到vulnerable
,它仍然容易受到攻击。
这应该适用于任何系统上的Bash来测试漏洞AFAIK。我已经在SUSE和Red Hat Linux进行了测试,但他们并不是BSD。要检查版本,它应该与其他系统类似:
$ echo $BASH_VERSION
4.3.11(1)-release
$ bash --version
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
有关下载/安装修补程序的详细信息,请参阅FreeBSD forums。从那个链接:
4.3.25之前的一切都很脆弱,4.3.25应该包含修复。