GitLabは、開発プラットフォーム「GitLab」に含まれるGitの脆弱性に対応する更新版を公開しました。特定の条件下で、リポジトリの処理を担う環境で任意のコマンドが実行されるおそれがあります。
修正版はCommunity Edition(CE)とEnterprise Edition(EE)向けの19.5.4、19.4.6、19.3.8です。GitLabが管理するGitLab.comとGitLab Dedicatedは修正済みです。
影響を受けるバージョンと修正内容
脆弱性の識別番号は「CVE-2026-105437」です。ソースコードなどの変更履歴を管理するGitに存在します。GitLabは同梱するGitを更新して対処しました。
影響を受けるのは、GitLab CEとEEの16.2以降19.3.8未満、19.4以降19.4.6未満、19.5以降19.5.4未満です。GitLabはこの脆弱性の重要度を「クリティカル」と評価しています。Git側の重要度評価は「高」です。
修正版には脆弱性の修正に加え、複数の不具合修正が含まれます。GitLabは影響を受ける自己管理型環境について、速やかな更新を推奨しています。GitLab.comとGitLab Dedicatedの利用者は対応不要です。
統合処理で生じるメモリの範囲外書き込み
脆弱性は、Gitの3方向マージと呼ばれるファイル統合処理にあります。この処理では、統合後の出力サイズを計算してから、そのサイズのバッファーに結果を書き込みます。修正前は合計サイズを32ビットの符号付き整数で保持していました。
リポジトリ内の設定ファイルで競合マーカーのサイズに大きな値を指定し、多数の競合を生じさせると、計算上の合計が小さな値に折り返されます。その結果、確保したバッファーの末尾を越えて統合結果が書き込まれ、Gitが停止するほか、ヒープと呼ばれるメモリ領域が破損する可能性があります。
GitLabでは、特定の条件下でGitalyの実行環境における任意のコマンド実行につながるおそれがあります。GitalyはGitLabでリポジトリの処理を担うコンポーネントです。Gitの修正ではサイズ計算の型を変更し、加算のたびにオーバーフローを検査することで、範囲外への書き込みに代えてエラーで停止するようにしています。
攻撃に使われる可能性がある操作
この問題は、テキストの3方向マージを行うGitのコマンドで発生します。対象にはgit-merge、git-rebase、git-cherry-pick、git-merge-treeが含まれます。git-merge-treeは、サーバー側で変更を統合できるか調べる際に使われることがあります。
サーバーがリポジトリのツリーから属性を読み込む場合、ブランチをプッシュして統合をリクエストできる利用者は、細工したリポジトリを通じてオーバーフローを引き起こせます。大きな出力は統合時に生じるため、プッシュするデータ自体は小さくて済みます。この条件では、別の利用者による追加操作を必要としません。
GitLabのセキュリティチームは、自己管理型環境向けに悪用の試行を検出するための情報も公開しています。検出対象には、Git merge-treeの子プロセスのクラッシュが挙げられています。更新できないサーバー向けの暫定策には、リポジトリごとの属性設定で競合マーカーのサイズを上書きする方法や、信頼できないリポジトリのサーバー側統合可否チェックを無効にする方法があります。
自己コンパイル環境で必要なGitの更新
公式のGitLab Linuxパッケージとコンテナイメージには、修正済みのGitが含まれています。一方、自己コンパイルした環境では、Gitalyに組み込まれたGitのバイナリーを再構築する必要があります。さらに、設定ファイルのgit.binpathが参照するGitも、対応するGitalyの安定版ブランチから再構築します。
参照先のGitがディストリビューションのパッケージに由来する場合は、Git 2.56.1以降、または同じ脆弱性を修正したパッケージへの更新が必要です。GitLabは、影響を受ける環境をサポート対象系列の最新パッチへ更新するよう推奨しています。今回の修正版には新しいデータ移行処理は含まれていません。
複数ノードで構成する環境では、これらの更新に停止時間は不要とされています。ただし、Omnibusパッケージは標準設定では更新時に停止し、移行処理を実行してから再起動します。この動作は、更新時に使う設定ファイルで変更できます。
11月12日の追加更新
GitLabは11月12日にも、19.5.5と19.4.7を公開しました。この更新では機能の不具合や回帰問題を修正しています。新たなセキュリティ修正は含まれていません。
追加更新では、新機能「GitLab Orbit」も利用できるようになりました。11月10日の修正版は19.5系、19.4系、19.3系の3系列向けです。11月12日の追加更新は19.5系と19.4系向けに公開されました。











