我正在尝试更新 CentOS 5 系统,以修补CVE-2014-6271/RHSA-2014:1293-1,但遇到了一个问题。
通过看似成功的方式更新 bashyum update bash
并重新启动服务器后,yum list bash
列出的已安装版本已修补(3.2.33.e15.1),但/bin/bash --version
显示的是 3.2.25(1)-release。
根据各方面情况(通过rpm -ql bash
),二进制位置是正确的,并且find / -name bash
只返回该一个位置。
对于为什么会发生版本差异,您有什么想法吗?
答案1
事实证明,尽管存在版本差异,但更新还是成功了。运行示例输入成功了,而之前却没有成功:
user [~]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
答案2
在 Red Hat,他们通常会修补旧版本,而不是直接更新到最新版本,以免破坏任何系统。由于这只是一个漏洞补丁,因此它确保二进制文件和整个软件包保持向后兼容。
您可以使用它rpm
来检查软件包的更新日志。这样您就可以随时验证自己是否正在使用最新的反向移植版本。
# rpm -q --changelog <the rpm package that just got installed>