c语言编程笔录

首页 >   > 笔记大全

笔记大全

CVE202015148漏洞怎么解决

更新时间:2023-10-24

CVE-2020-15148漏洞概述

CVE-2020-15148是一个在 GitLab 13.1.0 到 13.3.3 以及 GitLab 13.4.0rc1 之前版本中存在的任意文件读取漏洞。攻击者可以通过将Gitlab webhook路径构造成恶意URL的方式,导致Gitlab向恶意站点发送SQL查询指令,从而获取到目标机器上的敏感信息。

解决CVE-2020-15148漏洞方法

Gitlab官方对此漏洞的修复是在13.4.0rc1版本中对webhook传递参数进行了一定的限制,使得攻击者无法通过构造webhook url进行任意文件读取攻击。因此可以采取的方法就是将 Gitlab 升级到 13.4.0rc1 或更高版本。

# 使用yum命令安装官方版本
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo yum install gitlab-ee

#升级Gitlab 13.4.0rc1
sudo apt-get update
sudo apt-get install gitlab-ce=13.4.0~rc1-ce.0

CVE-2020-15148漏洞修复细节

还有几个细节需要注意。由于Gitlab的安装过程中可能会在不同的环境下有不同的配置路径,因此在更新的时候需要指定 `GITLAB_OMNIBUS_CONFIG` 的值,以确保配置文件被正确读取。如果没有指定这个环境变量,Gitlab可能会读取默认的 `gitlab.rb` 文件,但这个文件并不是我们新安装的 Gitlab 实例使用的配置文件。

#指定环境变量采取如下方法
sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee
sudo GITLAB_OMNIBUS_CONFIG="path/to/config_file.rb" yum install -y gitlab-ee

CVE-2020-15148漏洞防范措施

除了升级到新版本,还可以采取一些防范措施,具体包括以下几点:

  • 在配置环境变量的时候不要采用默认值,应该手动指定环境变量的值
  • 尽量限制hook的访问权限,只允许hook访问必要的资源
  • 部署 WAF 等安全设施尽量预先阻截恶意请求。

总结

CVE-2020-15148漏洞是一种利用 webhook 进行攻击的方法,攻击者可以通过构造特定URL的方式,欺骗Gitlab请求到自己恶意站点的SQL查询指令,从而获取到敏感信息。要修复这个漏洞,我们需要升级 Gitlab 到 13.4.0rc1 或更高版本,并在安装的过程中手动指定配置文件的路径以确保读取正确的配置。另外,还建议在配置 hook 的时候限制其访问权限,以及使用WAF等防护设备。