GitLabのコミットAPIの脆弱性CVE-2026-85706の悪用
- カテゴリ
- 脆弱性の悪用
GitLabが2026年9月10日に公開したGitLab CE/EEの修正版は、リポジトリのコミットAPIで、一定の条件下に認証の無い利用者がサーバーの任意のファイルを読めたパストラバーサルの脆弱性CVE-2026-85706を直した[1]。GitLabによると、GitLab.comとGitLab Dedicatedを含む同社が管理する基盤は修正済みである[1]。
脆弱性の内容
| 項目 | 値 | 資料 |
|---|---|---|
| 原因 | リポジトリのコミットAPIの不適切なパスの制限と、認証の強制の欠如 | [1] |
| CWE | CWE-22(パストラバーサル) | [4] |
| CVSS | 10.0(GitLab、CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N) | [1] |
| SSVCの評価 | Exploitation: active、Automatable: yes、Technical Impact: total(CISA-ADP) | [4] |
GitLabのセキュリティ部門が公開した検知の文書によると、マルチパートのアップロードではWorkhorseが要求の本文をバッファし、バッファしたファイルを指すfile.pathパラメータをRailsに渡す[3]。この脆弱性の類では、未認証の呼び出し元がファイルの本文を空にし、添えたfile.pathパラメータでサーバーの設定や秘密の材料を指す要求を送る[3]。パラメータには主にリポジトリのコミットAPIとリポジトリのファイルAPIから到達する[3]。
CrowdSecは、Workhorseは生のURLで経路を照合し、Railsは先にURLを復号すると説明した[14]。リポジトリのAPIのパスの1文字をパーセントエンコードすると、要求はWorkhorseを素通りし、Railsが攻撃者のfile.pathを読む[14]。
GitLabの検知の文書では、サーバー側のgitlab.ymlの読み取りが、CVE-2026-85706の最も価値の高い標的の類に当たる[3]。secrets.ymlとgitlab-secrets.jsonは、セッション・トークン・保存したCI/CD変数・2FAに使うRailsのsecret key baseと暗号鍵を保持している[3]。このため、読み取りが確認されれば、単なる情報の露出でなく認証情報の露出になる[3]。
GitLabは、この脆弱性の報告をHackerOneのバグ報奨金制度を通じて受けた[1]。同じ修正版の修正の表には18件の脆弱性が並び、深刻度がCriticalのものはこの脆弱性とEnterprise EditionのCVE-2026-87719(CVSS 9.9)である[1]。CVE-2026-87719はGraphQLのサブスクリプションのシリアライザの安全でないデシリアライズで、Duo Chatを使える認証済みの利用者がAdvanced Searchの設定と機密の認証情報を取得しうる[1]。
時系列
| 日付 | 主体 | 内容 | 資料 |
|---|---|---|---|
| 2026年 | - | CVE-2026-85706が予約された | [4] |
| 2026年 | GitLab | 19.3.2・19.2.6・19.1.8を公開し、CVE-2026-85706を修正した | [1] |
| 2026年 | watchTowr | 6時(UTC)から探索を観測し、速報でハニーポット網Attacker Eyeに探索が届いていると報告した | [12、14] |
| 2026年 | CISA | KEVカタログに追加し、追加を知らせる告知を出した | [4、5、6、7] |
| 2026年 | - | UTCで、CrowdSecが後に遡って見つけた最も早い一致の要求が届いた | [14] |
| 2026年 | CVE Program | CVEレコードが公開された | [4] |
| 2026年 | BSI | 注意喚起BITS-H 2026-288736-1032を公開した | [9] |
| 2026年 | JPCERT/CC | Weekly ReportでCISAのKEVへの追加を紹介した | [11] |
| 2026年 | GitLab | 19.0.9と18.11.12を公開し、CVE-2026-85706とCVE-2026-87719の修正を移植した | [1、2] |
| 2026年 | CrowdSec | この脆弱性に一致する要求の検知の規則を出した | [14] |
| 2026年 | CrowdSec | 観測の報告を公開した | [14] |
対象の製品と版
GitLabの告知によると、製品のデプロイの形(omnibus、ソース、helm chartなど)の記載が無いものは、すべての形が影響を受ける[1]。
| 製品 | 影響を受ける版 | 修正版 | 資料 |
|---|---|---|---|
| GitLab CE/EE | 19.3以上19.3.2未満 | 19.3.2 | [1] |
| GitLab CE/EE | 19.2以上19.2.6未満 | 19.2.6 | [1] |
| GitLab CE/EE | 19.1以上19.1.8未満 | 19.1.8 | [1] |
| GitLab CE/EE | 19.0以上19.0.9未満 | 19.0.9 | [1、2] |
| GitLab CE/EE | 18.7以上18.11.12未満〔注1〕 | 18.11.12 | [1、2] |
GitLabの保守方針は、セキュリティ修正を現行の安定版に加えて直前の2つの月次リリースに移植するとしている[22]。CrowdSecは、18.7〜18.10には修正版が無いと書いた[14]。
悪用の状況
NVDの記録によると、KEVの対応期限は9月14日である[5]。要求措置は、BOD 26-04とCISAの「Forensics Triage Requirements」に沿ってベンダーの指示どおりに緩和策を適用し、緩和策が無ければ製品の使用をやめることとした[5]。
watchTowrの9月11日の速報では、同社がGitLabの公表した技術情報を確かめて脆弱性を再現し、顧客の環境で自管理のインスタンスの露出を確かめた[12]。watchTowrは、悪用の難しさが低いことから、無差別な悪用に急速に移ると高い確度で評価した[12]。
The Hacker Newsは、悪用の要件は少なくとも1つの公開プロジェクトがあることだけだとwatchTowrが述べたと報じた[17]。同じ記事の追記では、悪用が探索から脆弱なインスタンスの特定に進み、悪用の成功と機微なファイルの持ち出しに至ったとwatchTowrが述べている[17]。週末に攻撃者が設定ファイルから秘密を、被害システムのSSHの設定とともに抜き出すのを観測したとも述べた[17]。
CrowdSecの報告によると、同社の追跡は9月11日〜10月5日に一意のIPアドレスを1,022件数えた[14]。その期間のピークは10月2日の94件である[14]。CrowdSec Networkは9月28日〜10月4日に、一致するシグナルを2,835件記録した[14]。シグナルのピークは10月1日の1,160件だった[14]。
CrowdSecは、CTIが関連づけた959アドレスのうち648件がダブリンのAWSのサーバーだったと報告した[14]。この脆弱性にだけ一致したアドレスは114件である[14]。一致した要求は悪用の試みで、成功したかや、標的に攻撃に要る公開プロジェクトがあったかは確認できないとした[14]。IPアドレスの数は攻撃者の数ではなく、数値は標本であって全数ではないとも書いた[14]。
BSIの9月14日の注意喚起では、GitLabが通常のパッチの周期で修正して悪用の知見を公表しなかった一方、週末に攻撃や攻撃の試みの手がかりが重なった[9]。各種のプラットフォームで最初のPoCとエクスプロイトが公開された[9]。BSIは、GitLabが悪用は「一定の条件下で」だけと述べながら条件を特定していないため、公開された多くのGitLabのシステムが潜在的に脆弱と想定すべきとした[9]。注意喚起を出した段階では、攻撃の痕跡(IoC)は知られていなかった[9]。
Rapid7は解説で、公開時に悪用が知られているのはCVE-2026-85706だけだとした[13]。カナダ・サイバーセキュリティセンターは注意喚起AV26-917で、CISAがCVE-2026-85706をKEVに追加したと伝えた[8]。シンガポールのCSAは、脆弱性が活発に悪用されていると報じられ、PoCが公開されているとした[10]。JPCERT/CCは、CISAが悪用を確認しKEVカタログに追加したと紹介した[11]。
| 種別 | 値 | 示した組織 | 資料 |
|---|---|---|---|
| 要求の形 | "/api/v4/projects/{id}/repository/commits/" へのHTTP POSTで、"file.path" パラメータを含むもの | watchTowr | [12] |
| 要求の宛先 | POST /api/v4/projects/:id/repository/commits、リポジトリのファイルAPI | GitLab | [3] |
| 経路の無害化の回避 | 末尾のスラッシュと、経路とパラメータのパーセントエンコード | GitLab | [3] |
| 検知 | GitLab LFI attempt reading gitlab.yml、GitLab LFI via metadata.path parameter、GitLab LFI file path attempt | GitLab | [1] |
修正と回避策
GitLabは移植の告知で、19.0.9と18.11.12は、18.11と19.0を使う自管理の管理者が先に版を上げなくても修正を当てられるよう、通常の保守方針の外で提供したと説明した[2]。これらの版にほかの変更は含まない[2]。
- GitLabは、すべての自管理のインストールを修正版のいずれかへ直ちに更新するよう強く推奨した[1]。
- 19.1・19.2・19.3を使うインストールには、移植版ではなく、それぞれの系列の修正版以降への更新を求めた[2]。
- 18.11と19.0は他の修正を受けないため、最新のサポート版への更新を引き続き推奨した[2]。
- GitLabは検知の文書で、この脆弱性の公開の探索が8月から広く行われていたとして、過去の調査はその期間を対象にすべきとした[3]。
- 読み取りを確認したら、更新を待たずに露出した認証情報を入れ替えるよう求めた[3]。
9月10日の修正版はデータベースのマイグレーションを含み、単一ノードのインスタンスでは更新中に停止が生じる[1]。複数ノードのインスタンスは、停止なしの手順で適用できる[1]。
watchTowrは、公開されたインスタンスを早急に更新するか、公開をやめるよう勧めた[12]。CrowdSecは、公開プロジェクトをinternalかprivateにするとwatchTowrの述べる前提条件を除けるが、欠陥は残ると書いた[14]。BSIは、GitLabが助言で回避策を示していないとした[9]。
未公表の事項
- 脆弱性が成り立つ「一定の条件」の中身(GitLabは、各脆弱性の詳細のissueを修正したリリースの90日後に公開するとした[1])
- 悪用の成功や秘密の持ち出しを受けた組織の名前と数
- 攻撃者の帰属
- GitLabによる18.7〜18.10の系列の修正の扱い
注
出典
当事者
- [1]GitLab Inc.『GitLab Critical Patch Release: 19.3.2, 19.2.6, 19.1.8』(2026年9月10日公開、2026年9月23日更新)
- [2]GitLab Inc.『GitLab Critical Patch Release: 19.0.9, 18.11.12』(2026年9月23日公開)
- [3]GitLab Inc.『Detections/platforms/GitLab/Vulnerability Detections/local_file_inclusion_gitlab_yml_read.md(TLDR)』(公開日不明、2026年10月28日更新、2026年11月7日閲覧)
公的機関
- [4]CVE Program『CVE-2026-85706』(2026年9月12日公開、2026年9月23日更新)
- [5]National Institute of Standards and Technology『CVE-2026-85706』(2026年9月12日公開、2026年9月24日更新)
- [6]Cybersecurity and Infrastructure Security Agency『Known Exploited Vulnerabilities Catalog(CVE-2026-85706)』(2026年9月11日公開、保存記録のみ) 保存記録
- [7]Cybersecurity and Infrastructure Security Agency『CISA Adds One Known Exploited Vulnerability to Catalog』(2026年9月11日公開、保存記録のみ) 保存記録
- [8]Canadian Centre for Cyber Security『GitLab security advisory (AV26-917)』(2026年9月11日公開)
- [9]Bundesamt für Sicherheit in der Informationstechnik『GitLab: Schwachstellen bereits kurz nach Veröffentlichung im Fokus von Angreifern』(2026年9月14日公開、PDF)
- [10]Cyber Security Agency of Singapore『Active Exploitation of Critical Vulnerability in GitLab』(2026年9月17日公開)
- [11]一般社団法人JPCERTコーディネーションセンター『JPCERT/CC WEEKLY REPORT 2026-09-16』(2026年9月16日公開)
調査・観測
- [12]watchTowr Pte. Ltd.『Rapid Reaction: GitLab Path Traversal Vulnerability (CVE-2026-85706)』(2026年9月11日公開、2026年9月18日更新)
- [13]Rapid7, Inc.『CVE-2026-85706: Critical GitLab Path Traversal Exploited in the Wild』(2026年9月14日公開)
- [14]CrowdSec SAS『GitLab Unauthenticated File Read (CVE-2026-85706): Upgrading Closes the Hole, Not What Already Leaked Through It』(2026年10月5日公開、2026年10月27日更新)
報道機関
- [17]The Hacker News『GitLab CVSS 10 File-Read Flaw Draws In-the-Wild Probes After Disclosure』(2026年9月11日公開)
背景資料
- [22]GitLab Inc.『GitLab release and maintenance policy』(公開日不明、2026年11月7日閲覧)
更新記録
- 2026年9月14日:公開した。
- 2026年9月16日:JPCERT/CCのWeekly Report(出典11)を加え、「時系列」と「悪用の状況」を改めた。
- 2026年9月17日:シンガポールのCSAの注意喚起(出典10)を加え、「悪用の状況」を改めた。
- 2026年9月18日:watchTowrの速報の9月18日の更新版(出典12)で、「悪用の状況」と「修正と回避策」を改めた。
- 2026年9月23日:GitLabの19.0.9と18.11.12の告知(出典2)と、9月10日の告知への同じ日の追記(出典1)、CVEレコードの更新(出典4)を加え、「時系列」「対象の製品と版」「修正と回避策」と注を改めた。
- 2026年9月24日:NVDの記録の更新(出典5)を加え、「悪用の状況」を改めた。
- 2026年10月5日:CrowdSecの観測の報告(出典14)を加え、「脆弱性の内容」「時系列」「対象の製品と版」「悪用の状況」「修正と回避策」を改めた。
- 2026年10月27日:CrowdSecの報告の10月27日の更新版(出典14)で、「悪用の状況」を改めた。
- 2026年10月28日:GitLabのセキュリティ部門の検知の文書の10月28日の版(出典3)を加え、「脆弱性の内容」「悪用の状況」「修正と回避策」を改めた。
