一、漏洞概述
GitLab 是一个基于 Web 的 DevOps 生命周期工具,它提供了一个 Git 存储库管理器,提供 wiki、问题跟踪以及持续集成和部署管道功能。
来自 HackerOne 的 Jobert Abma 披露了 GitLab 的“导入/导出项目”功能中的一个关键安全漏洞。在 GitLab 8.9 中添加了此功能,允许用户将其项目导出并重新导入为磁带存档文件 (tar)。8.13.0 之前的所有 GitLab 版本都将此功能限制为仅供管理员使用。从版本 8.13.0 开始,所有用户都可以使用此功能。
此功能未正确检查用户提供的存档中的符号链接,因此经过身份验证的用户可以检索 GitLab 服务帐户可访问的任何文件的内容。这包括敏感文件,例如包含 GitLab 服务用于验证用户身份的机密令牌的文件。(本文未包含修复措施)
二、漏洞环境:
vulhub
注:8.9.0-8.13.0
版本的gitlab
的项目导入功能需要管理员开启
三、漏洞复现:
使用管理员权限登录root/vulhub123456,新建项目,输入项目名称x:
上传文件test.tar.gz,文件泄露:/etc/passwd