운영중인 Ubuntu 서버의 GitLab 버전을 업그레이드 하는 방법입니다.
설치 방식이나 운영 환경에 따라 다를 수 있는점 참고 바랍니다.
1. GitLab 업그레이드 필요한 보안 상황
현재 테스트 서버에 설치된 Community Edition 19.3.1 버전은 치명적인 취약점을 가지고 있습니다.
어제 발표된 취약점(CVE-2026-85706)은 Repository Commits API에서 경로 제어 및 인증 검증이 미흡하여 발생하는 Path Traversal(경로 탐색) 결함입니다. 이로 인해 외부 공격자가 별도의 권한이나 로그인 과정 없이도 서버 내부의 임의 파일에 접근하여 읽을 수 있습니다. 리포지토리 경계를 넘어 시스템 내 주요 데이터까지 직접 노출될 수 있어 공격 용이성 및 파급력이 매우 높은 위협입니다.
때문에 가장 최근에 출시된 버전 19.3.2 버전으로 업그레이드를 하여 취약점을 해결 하려고 합니다.
[ 영향 받는 버전 ]
18.x 계열 : 18.7 이상 ~ 19.1.8 미만 버전 (→ 19.1.8 이상으로 업그레이드 필요)
19.2 계열 : 19.2.0 이상 ~ 19.2.6 미만 버전 (→ 19.2.6 이상으로 업그레이드 필요)
19.3 계열 : 19.3.0 이상 ~ 19.3.2 미만 버전 (→ 19.3.2 이상으로 업그레이드 필요)
* CE(Community Edition)과 EE(Enterprise Edition) 버전 모두 동일하게 영향을 받습니다.
# 버전 확인 방법
dpkg -l |grep gitlab
ii gitlab-ce 19.3.1-ce.0 amd64 … Community Edition (including NGINX, Postgres, Redis)
2. 업그레이드 가능 여부 확인
# (본 서버에서)
cat /etc/gitlab/gitlab.rb 2>/dev/null | head -1 && echo “Omnibus 설치”
Omnibus 설치
which gitlab-ctl 2>/dev/null && echo “gitlab-ctl 사용 가능”
/usr/bin/gitlab-ctl
Omnibus 패키지 설치 방식(gitlab-ctl 사용 가능)이면 apt 명령으로 손쉽게 업그레이드 가능합니다.
이제 업그레이드 가능한 버전을 확인합니다.
apt updaate
apt list –all-versions gitlab-ce 2>/dev/null | grep “19.3”
gitlab-ce/noble 19.3.2-ce.0 amd64 [upgradable from: 19.3.1-ce.0]
19.3.1-ce.0 버전에서 19.3.2-ce.0 버전으로 업그레이드 가능한것을 알 수 있습니다.
3. 업그레이드
1) 데이터 백업 (중요, 업그레이드 전 필수)
gitlab-backup create
이 명령은 저장소 데이터, 데이터베이스(프로젝트, 사용자, 이슈, MR 등 모든 메타데이터), CI/CD 관련 파일, 첨부파일 등을 포함한 전체 데이터를 백업합니다. 그렇기 때문에 저장된 데이터 양에 따라 오래 걸립니다.
다만 설정 파일(/etc/gitlab/gitlab.rb, 시크릿 키 등)은 이 백업에 포함되지 않으므로 필요시 해당 디렉토리를 별도 보관해 두는 것이 좋습니다.
2) 업그레이드
apt install gitlab-ce=19.3.2-ce.0
이 명령은 서비스를 자동으로 재구성(reconfigure)하고 필요한 DB 마이그레이션도 함께 실행합니다.
단일 노드 구성이므로, 업그레이드 진행 중 웹UI/API 접속이 일시적으로 몇 분간 중단될 수 있습니다.
필자는 실행하면서 별도로 질문하는 프롬프트가 출력되지 않았는데, 혹시 나온다면 ‘기존 설정을 유지(보통 기본값 “keep the local version” 또는 ‘N’)’ 하면 됩니다.
4. GitLab 업그레이드 결과 및 최종 검증
안전한 버전으로 업그레이드 되었는지 확인합니다.
# 버전 확인 방법
dpkg -l |grep gitlab
ii gitlab-ce 19.3.2-ce.0 amd64 … Community Edition (including NGINX, Postgres, Redis)
모든 업그레이드 작업이 성공적으로 완료되었습니다.
기존 환경 설정이 그대로 유지되므로, git push 등 개발 업무에 필요한 주요 기능들을 즉시 정상적으로 사용할 수 있습니다.
소프트웨어 보안 취약점은 언제든 새롭게 발견될 수 있으며, 이번 취약점과 같이 단 한 번의 노출로도 소스코드 및 내부 데이터가 유출되는 심각한 피해로 이어질 수 있습니다. 안전한 개발 환경과 자산을 보호하기 위해 사용 중인 시스템의 보안 공지를 주기적으로 확인하고, 최신 보안 패치를 신속하게 적용하는 습관을 들이는 것을 권장합니다.






