社内や協力会社とのソースコード管理に、自社のサーバーで動かすGitLab(Self-Managed)を使っている。ふだんは月1回ほどのペースで更新しているが、9月の更新はまだ当てていない。そういう運用をしているなら、今週中に版を確かめてください。認証なしでサーバー上のファイルを読まれる脆弱性が修正され、すでに悪用が確認されています。
2026年10月5日に、GitLabがCVE採番機関として公開している記録(gitlab-org/cves)、GitLabのパッチリリースの告知、GitLab本体の変更履歴(CHANGELOG.md)と修正コミット、米国のサイバーセキュリティ・社会基盤安全保障庁(CISA)が公開する「悪用が確認された脆弱性(KEV)」のデータを直接開いて確認しました。本記事は資料調査と編集部の提案です。攻撃の再現や、実際のGitLabでの更新作業は行っていません。
何が起きるのか:commits APIから任意のファイルを読める
CVE記録の説明は次のとおりです。
an unauthenticated user could have read arbitrary files from the GitLab server due to improper path confinement and missing authentication enforcement in the repository commits API.
認証していない利用者が、リポジトリのcommits APIを通じて、GitLabサーバー上の任意のファイルを読めた可能性がある、という内容です。原因は2つ挙げられています。ファイルのパスを決められた範囲に閉じ込める処理の不備(パストラバーサル、CWE-22)と、認証を求める処理の欠落です。
深刻度はCVSS 3.1で10.0(最大値)です。ネットワーク経由で、認証なし・利用者の操作なしで攻撃でき、影響がGitLabの外に及ぶ(Scope: Changed)と評価されています。
CISAのKEVには2026年9月11日に追加され、米国の連邦機関に対する対応期限は9月14日でした。KEVの項目には「forensicTriage: Yes」とあり、修正を当てるだけでなく、侵害の痕跡を調べることも求められています。

影響する版と修正版
CVE記録が挙げる影響範囲と修正版、CHANGELOG.mdの公開日を表にまとめました。CHANGELOGでは、いずれの版も「Fix unauthenticated arbitrary local file read in commits API」の行がSecurityの項に入っています。
| 使っている系列 | 影響する版 | 修正版 | 修正版の公開日 |
|---|---|---|---|
| 18.7〜18.11 | 18.7以上 18.11.12未満 | 18.11.12 | 2026-09-22 |
| 19.0 | 19.0.9未満 | 19.0.9 | 2026-09-22 |
| 19.1 | 19.1.8未満 | 19.1.8 | 2026-09-10 |
| 19.2 | 19.2.6未満 | 19.2.6 | 2026-09-10 |
| 19.3 | 19.3.2未満 | 19.3.2 | 2026-09-10 |
対象はCommunity Edition(CE)とEnterprise Edition(EE)の両方です。なお、GitLabの告知ページは、18.11.12と19.0.9への修正の移植(バックポート)を「9月23日」の更新として案内しており、CHANGELOGの日付と1日ずれています。19.4系(19.4.0は9月16日公開)は影響する版の一覧に入っていません。18.6以前は一覧の範囲外ですが、古い版は他の修正も受けていないため、この脆弱性に関係なく更新の計画が必要です。
GitLab.com(GitLabが運営するクラウド版)とGitLab Dedicatedについて、告知ページは修正済みで利用者側の対応は不要としています。本記事は自社で運用しているGitLabを前提にしています。
修正の中身から読み取れること
GitLab本体のリポジトリで公開されている18.11系向けの修正コミット(fff017e)と19.0系向けの修正コミット(b35cff0)を確認しました。変更点は次の3つです。
- commits APIの、本文を一時ファイルとして受け取る処理(
/repository/commits/authorize)とファイル作成・更新のAPIに、authenticate!(認証の要求)を追加 - 一時ファイルのパスとサイズを、利用者が送った値ではなく、中継処理(Workhorse)が確定させた値だけから読むように変更
- 追加されたテストは、公開(public)プロジェクトに対して、認証なしで このAPIを呼ぶと401(未認証)になることを確かめている
テストの内容から、編集部は「公開プロジェクトがあり、インターネットから到達できるGitLab」を最も優先して対応すべき構成と読んでいます。ただし、CVE記録の説明は「under certain conditions(一定の条件のもとで)」としか書いておらず、条件の全体は公開されていません。公開プロジェクトがないから安全、とは言い切れません。
今週やること(編集部の提案)
ここからは、上記の資料をもとにした編集部の提案です。
- 版を確認する。 Linuxパッケージで導入したサーバーでは、
sudo gitlab-rake gitlab:env:infoで版を含む環境情報を表示できます(GitLabの保守用Rakeタスクの文書に記載) - 修正版まで上げる。 上の表で、使っている系列の修正版以上にします。系列をまたいで上げる場合は、GitLabのアップグレードパス(途中で必ず経由する版)に従います
- サーバー上の秘密情報を洗い出し、外部の鍵から入れ替える。 任意のファイルを読まれた可能性がある以上、サーバー上にある秘密情報は漏れた前提で扱います。
/etc/gitlab/gitlab.rbに書いたメールや外部ストレージの認証情報、Runnerのトークン、CI/CD変数に入れているクラウドやデプロイ先の鍵などです。GitLabのバックアップの文書によると、/etc/gitlab/gitlab-secrets.jsonにはデータベース内のCI/CD変数や二要素認証の情報を復号する鍵が入っています。このファイル自体を作り直すと保存済みの値を復号できなくなるため、手を付ける前にGitLabの文書で手順を確認し、まずはCI/CD変数に入れている外部サービスの鍵を発行元で失効・再発行します - 痕跡を探す。 9月10日より前から修正版を当てるまでの期間について、APIのアクセスログで、認証なしの
POST /api/v4/projects/:id/repository/commits/authorizeへのリクエストがないかを確認します。GitLabの告知ページは、自社運用向けに悪用の試みを見つける検知ルールを3つ公開したと案内しているので、あわせて確認します。見つかった場合は、送信元と時刻を控え、手順3を急ぎます - すぐに上げられない場合は、外部からの到達を絞る。 VPNや送信元IPの制限で、インターネットからGitLabに届かない状態にします。CVE記録には回避策の記載がなく、修正版への更新が唯一の対処として書かれています
手順4のログの見方や保存期間は、構成によって異なります。ログが残っていない期間は「調べられなかった」と記録し、手順3を省かないことを勧めます。
見落としやすい点
- 19.4に上げてあるから大丈夫と思い込む。 19.4系は影響範囲に入っていませんが、19.4.1(9月22日)にも別のセキュリティ修正が11件入っています。最新のパッチ版まで当てます
- パッチを当てて終わりにする。 KEVの項目は痕跡の調査を求めています。読まれた可能性のあるファイルに秘密情報が入っていたなら、更新後も使い続けるのは危険です
- Runnerや連携先を忘れる。 GitLabのサーバー上のトークンを入れ替えたら、それを使うRunner・デプロイ先・外部サービスの設定も更新が必要です。CI/CDの権限の分け方は、Gitのpushで任意のコードが実行された脆弱性の記事でも整理しています
自社運用のGitLabは、更新が止まると今回のような脆弱性がそのまま残ります。版の確認と、秘密情報の置き場所の棚卸しを、今週のうちに済ませてください。GitLabの機能面の変化はGitLab 19の機能と運用の記事でまとめています。
2026年10月5日に、GitLabのCVE記録(gitlab-org/cves の
2026/CVE-2026-85706.json)、GitLabのパッチリリースの告知(19.3.2・19.2.6・19.1.8)、gitlab-org/gitlab の CHANGELOG.md と修正コミット(fff017e・b35cff0)、CISAのKEVデータ(cisagov/kev-data、catalogVersion 2026.10.04)、NVDの登録内容を直接開いて照合しました(資料調査)。今週やることは編集部の提案です。攻撃の再現、実際のGitLabでの更新・ログ調査、検知ルールの中身は確認していません。
自社運用のGitLabやCI/CDの更新・秘密情報の入れ替えの進め方は、グリームハブの開発・AI・自動化のご相談で承っています。構成やRunnerの数によって手順が変わるため、お問い合わせからご相談ください。
参考資料
- GitLab CVE record — CVE-2026-85706(gitlab-org/cves)
- gitlab-org/gitlab — CHANGELOG.md
- gitlab-org/gitlab — Fix unauthenticated arbitrary local file read in commits API(b35cff0、19.0系)
- gitlab-org/gitlab — Fix unauthenticated arbitrary local file read in commits API(fff017e、18.11系)
- cisagov/kev-data — known_exploited_vulnerabilities.json
- gitlab-org/gitlab — doc/administration/raketasks/maintenance.md
- gitlab-org/gitlab — doc/administration/backup_restore/backup_gitlab.md
- gitlab-org/gitlab — doc/update/upgrade_paths.md
- GitLab — Critical Patch Release: 19.3.2, 19.2.6, 19.1.8
- NVD — CVE-2026-85706








