Gitlab-shell 受 Bash CVE-2014-6271 漏洞影响

今天 US-CERT 公布了一个严重的 Bash 安全漏洞 (CVE-2014-6271) ,该漏洞同时也影响 OpenSSH 守护进程。而 Gitlab 服务器默认的 git 账号就是使用 Bash 用来执行远程的代码。攻击者只要有 SSH key 就可以利用这个漏洞在 Gitlab 服务器执行任意代码。

检测服务器是否存在这个漏洞的方法:

ssh [email protected] '() { ignored; }; /usr/bin/id'

如果输出下面内容表示服务器存在此漏洞:

uid=1001(git) gid=1001(git) groups=1001(git)

解决完请再通过上述代码测试是否存在漏洞。

你也可以将 shell 改为 csh,安装:

sudo apt-get install csh

如果你正在使用 omnibus-gitlab, 只需要将下面一行代码添加到 /etc/gitlab/gitlab.rb 文件然后运行 sudo gitlab-ctl reconfigure 即可:

user['shell'] = '/bin/csh'

如果你是通过源码方式安装,可使用如下命令来更改 shell:

sudo chsh -s /bin/csh git

再次测试看看漏洞是否解决。

如果因为某些原因导致上面的方法你都不能使用,你可以禁用 git 用户通过 SSH 连接服务器,只需要在 /etc/ssh/sshd_config 增加 DenyUsers git,然后重启 SSH 服务即可,这样会导致无法通过 SSH 方式 Push 代码。

相关推荐