GitLab升级版本(任意用户密码重置漏洞CVE-2023-7028)

目录

前言

最近GitLab发了个紧急漏洞需要修复,ok接到命令立刻着手开始修复,在修复之前先大概了解一下这个漏洞是什么东西

漏洞分析

1、组件介绍:GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

2、漏洞描述:2024年1月12日,深瞳漏洞实验室监测到一则GitLab组件存在任意用户密码重置漏洞的信息,漏洞编号:CVE-2023-7028,漏洞威胁等级:高危。该漏洞是由于开发者在开发时没有对各项参数进行准确的校验造成的,攻击者可利用该漏洞在未授权的情况下,进行任意用户密码重置,最终导致用户账户被攻击者接管

影响范围

影响范围目前受影响的GitLab版本:

16.1≤GitLab<16.1.5

16.2≤GitLab<16.2.8

16.3≤GitLab<16.3.6

16.4≤GitLab<16.4.4

16.5≤GitLab<16.5.6

16.6≤GitLab<16.6.4

16.7≤GitLab<16.7.2

查看自己的GitLab版本

在自己gitlab后面加上/help即可查看版本,在我查阅资料后,发现gitlab需要迭代升级,一步到顶会出现问题,这是官网地址:https://docs.gitlab.com/ee/update/#installation-using-docker

升级路程

由于公司的gitlab是13.1.3版本,所以需要跨越3个大版本,目标版本16.1.6

下面这是我个人总结的GitLab升级路线:

8.17.7

9.5.10

10.8.7

11.11.8

12.0.2

12.1.17

12.10.14

13.0.14

13.1.11

13.8.8

13.12.15

14.0.12

14.3.6

14.9.5

14.10.5

15.0.5

15.1.6

15.4.6

15.11.13

16.0.8

16.1.6

16.2.8

16.3.6

16.Z

升级过程

13.1.11

由于我是13.1.3,所以是在13.0.14版本后,把13.1.11版本作为第一个升级的版本,而且由于使用了docker在升级版本方面还是比较方便的

bash 复制代码
# 0、备份
docker exec -it gitlab /bin/bash     #进入容器,gitlab是容器名字
gitlab-rake gitlab:backup:create          #备份命令, 备份目录/var/opt/gitlab/backups

# 1、下载
docker pull gitlab/gitlab-ce:13.1.11-ce.0

# 2、停止当前gitlab
docker stop gitlab

# 3、删除容器
docker rm gitlab

# 4、启动容器(这边要等待5-10分钟)
docker run -d -p 8804:8804 -p 222:22 --name gitlab --restart always -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab -v /usr/local/gitlab/backup:/opt/gitlab_backup gitlab/gitlab-ce:13.1.11-ce.0

# 5、打开gitlab测试

13.8.8 - 14.0.12

都是重复以上1-5步操作

14.3.6

bash 复制代码
#在升级完14.0.12版本后进入docker容器
docker exec -it gitlab /bin/bash

#执行以下两行内容(否则会报错:Expected batched background migration for the given configuration to be marked as 'finished', but it is 'active')
gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,push_event_payloads,event_id,'[["event_id"]\, ["event_id_convert_to_bigint"]]']

gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,ci_stages,id,'[["id"]\, ["id_convert_to_bigint"]]']

tips:

docker logs 可查看容器内日志

14.9.5 - 16.1.6

重复13.1.11的升级过程

以下是我升级过程的截图,最后感谢这片帖子的作者:https://www.cnblogs.com/xiao987334176/p/15584309.html

各位好运!










相关推荐
深情不及里子13 小时前
纯手工搭建整套CI/CD流水线指南
ci/cd·gitlab·jenkins·harbor
AliCloudROS1 天前
阿里云ACK+GitLab企业级部署实战教程
k8s·gitlab·helm·ack·计算巢
{⌐■_■}2 天前
【gitlab】认识 持续集成与部署
ci/cd·log4j·gitlab
JAVA坚守者7 天前
Jenkins+maven+gitlab+shell 实现项目自动化部署
gitlab·jenkins·maven
大熊程序猿8 天前
jenkins 配置ssh拉取gitlab
ssh·gitlab·jenkins
到不了p8不改名8 天前
gitlab无法登录问题
运维·服务器·容器·centos·gitlab·jenkins
java 凯9 天前
Ubuntu 上安装 GitLab
linux·ubuntu·gitlab
刘金宝_Arvin9 天前
解决IDEA中gitlab登录只有token选项,没有账号密码选项
gitlab
Chicheng_MA9 天前
GitLab CI/CD 的配置详解:从零开始使用 .gitlab-ci.yml 文件
gitlab
极小狐12 天前
极狐GitLab 17.8 正式发布,多项 DevOps 重点功能解读【一】
gitlab·devops·极狐gitlab