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

各位好运!










相关推荐
明月心95221 小时前
git remote add 用法
gitlab
only_Klein1 天前
jenkins流水线报错:Connection reset by peer
ci/cd·kubernetes·gitlab·jenkins·ssl
梁萌2 天前
docker部署gitlab和gitlab runner
docker·eureka·gitlab
johnnyAndCode2 天前
Idea 设置GitLab时使用账密,而不是token的配置方法
gitlab·idea
天外飞雨2 天前
Gitlab使用
gitlab
BUTCHER53 天前
GitLab SSH 密钥配置
运维·ssh·gitlab
明月心9523 天前
GitLab使用
gitlab
明月心9524 天前
gitlab pull requets
gitlab
BUTCHER54 天前
GitLab基本设置
gitlab
张小凡vip4 天前
Kubernetes---gitlab的ci/cd发布基于k8s的项目示例参考
ci/cd·kubernetes·gitlab