GitLab に 12年前から存在する脆弱性:セルフマネージド・サーバでコード実行の恐れ

12-Year-Old GitLab Vulnerability Allows Remote Code Execution on Self-Managed Server

2026/10/22 CyberSecurityNews — GitLab が公開したのは、セルフ・マネージド環境で運用されるサーバ上で、未認証の攻撃者に任意のコード実行を許す可能性がある、深刻度 Critical の脆弱性 CVE-2026-110264 (CVSS 10.0) に対するセキュリティ・アップデートである。この脆弱性は、GitLab Community Edition (CE)/Enterprise Edition (EE) に影響するものであり、2026年10月21日の時点で修正版が公開されている。

影響を受けるコードは、2014年に公開された GitLab 7.0 まで遡るため、この脆弱性は約 12年前から存在していたことになる。ただし、長期間にわたり存在していたことが、その間に悪用されていたことを意味するわけではない。GitLab のアドバイザリには、この脆弱性のリスクが説明されているが、実際の攻撃が確認されたとの報告はなく、公開エクスプロイトも提供されていない。

GitLab におけるリモート・コード実行の脆弱性

GitLab の公式セキュリティ・アドバイザリによると、この脆弱性は、特別に細工された正規表現のコンパイル時に発生する、整数オーバーフローの問題に起因する。正規表現とは、テキストのパターン照合に使用される表現であり、特定の条件下で攻撃者が制御する正規表現が処理されると、サーバ上での任意のコード実行に至る可能性がある。

GitLab による CVSS 評価では、ネットワーク経由で攻撃可能で、攻撃の複雑さは低く、アカウント権限やユーザー操作も必要ないとされている。また、機密性/完全性/可用性のいずれにも、高い影響が及ぶと評価されている。その一方で、脆弱なコードに到達するための具体的な条件は一切公表されていない。

ただし、GitLab が明示しない限り、悪用に際して特定のプロジェクトや機能へのアクセスが必要だと、管理者は決めつけるべきではない。

このリリースノートには、Ruby の正規表現に関するパッチも記載されているが、完全な攻撃経路は明らかにされていない。

この問題を HackerOne のバグ報奨金プログラムを通じて報告した、セキュリティ研究者である joaxcar に、GitLab は謝意を示している。

修正対象となった脆弱性の一覧

今回のパッチリリースでは、合計 12 件の脆弱性が修正されている。

CVE IDSeverityCVSS ScoreAffected EditionVulnerability and Potential Impact
CVE-2026-110264Critical10.0CE and EEAn integer overflow while compiling a specially crafted regular expression could allow an unauthenticated attacker to execute code on the GitLab server.
CVE-2026-15723High8.2CE and EEImproper input handling during OmniAuth-to-LDAP account linking could let an authenticated attacker take over an LDAP-backed account when SAML and LDAP auto-linking are enabled.
CVE-2026-112212High7.5CE and EECache poisoning in OAuth/OIDC discovery responses could let an unauthenticated attacker redirect certain authentication flows to an attacker-controlled server.
CVE-2026-12664Medium6.8CE and EEMissing GraphQL scope checks could allow a user with a read_api token to retrieve a project’s incoming email address and create work items beyond the token’s intended permissions.
CVE-2026-16255Medium5.9EEIncomplete SAML/LDAP membership-lock enforcement could allow authenticated users to grant or accept memberships outside identity-provider controls through requests created before the lock was enabled.
CVE-2026-105777Medium4.3CE and EEImproper filtering of internal response headers could expose sensitive internal server credentials under certain conditions.
CVE-2026-13319Medium4.3CE and EEMissing authorization checks in the group milestones API could let authenticated users read milestone details and project paths from private projects without membership.
CVE-2026-112378Medium4.3EEInsufficient server-side billing checks could allow authenticated users to access paid AI features without a valid subscription.
CVE-2026-105711Low3.5CE and EEIncorrect caching of merge request titles could expose confidential issue titles to authenticated users without project membership.
CVE-2026-14288Low3.1EEImproper access control during approval-rule synchronization could allow authenticated users to bypass required merge request approvals on protected branches.
CVE-2026-112326Low3.1EEIncorrect cleanup during error handling could allow users with read-only permissions to permanently delete existing vulnerability records.
CVE-2026-103515Low2.7EEIncomplete enforcement of a Duo administrator lock could allow group Owners to re-enable AI-backed data transfers to a third-party service through Amazon Q settings.
影響を受けるバージョンと修正済みリリース

この脆弱性は、GitLab CE/EE のバージョン 7.0 以降に影響する。

GitLab は、以下のバージョンで修正を提供している。

  • 18.11.13
  • 19.0.10
  • 19.1.9
  • 19.2.9
  • 19.3.6
  • 19.4.3
  • 19.5.1

これらのブランチにおける、以前のリリースも影響を受ける。GitLab は、通常のパッチ・リリースに加えて、旧バージョン系列にも修正を提供している。セルフマネージド環境を運用する顧客に求められるのは、速やかなアップグレードである。

なお、すでに GitLab.com に修正済みソフトウェアが適用されている。GitLab の通知によると、19.3.5-internal0/19.4.2-internal0 以降を実行している GitLab Dedicated テナントも修正済みのため、追加の対応は不要とされている。なお、アドバイザリで特定されていないケースにおいては、すべての導入形態が影響を受けると、GitLab は説明している。

今回の問題について、10月12日に修正された別の GitLab のコード実行脆弱性と混同すべきではない。CVE-2026-97229 も正規表現の処理に関係していたが、影響を受けるバージョン範囲が異なるため、以前のアップデートを適用しただけでは、今回の新たな脆弱性への対処にはならない。

GitLab は、悪用の試みを特定するための次の 2 つの検出ガイドを、セルフマネージド環境向けに公開している。

  • 「Onigmo native worker crash」(Onigmo のネイティブ・ワーカーのクラッシュ)
  • 「Org mode render error burst」(Org モードのレンダリング・エラーの急増)

ただし、公開されている検出ガイド自体は、実際に発生した攻撃の証拠ではなく、リリース通知においても、「それらの兆候は侵害成功を証明するものではない」と明記されている。

今回のリリースでは、この他にも、認証やアクセス制御に関する脆弱性が修正されている。CVE-2026-15723 の CVSS スコアは 8.2 と評価されており、OmniAuth の SAML と LDAP の自動アカウント連携が、両方とも有効になっている場合にリスクを生じる。その結果、認証済みの攻撃者が、被害者の操作を必要とせずに既存の LDAP アカウントを乗っ取る可能性がある。

また、脆弱性 CVE-2026-112212 (CVSS 7.5) は、OAuth および OpenID Connect のディスカバリ応答に対するキャッシュ・ポイズニングの欠陥であり、特定の認証フローの結果が、攻撃者の管理するサーバへリダイレクトされる可能性がある。

今回の修正は、AI Gateway におけるリモート・コマンド実行の脆弱性などの、最近公開された GitLab のセキュリティ・アップデートに続くものである。これらの脆弱性は、対象となるコンポーネントや攻撃条件がそれぞれ異なるため、GitLab 関連のアップデートを 1 回適用すれば、すべての関連製品の問題が解決すると考えるのではなく、製品ごとに正確なバージョンを確認することが重要である。

管理者は、アップグレードを実施する前に、GitLab が公開するアップグレード手順を確認する必要がある。通知では、データベースのマイグレーションがアップグレード作業に影響する可能性があると警告されており、単一ノード構成ではダウンタイムが発生する場合がある。一方、適切なマルチノード構成では、ダウンタイムなしでアップグレードできる手順も用意されている。バージョン 19.3.6/19.4.3 には、通常のデータベース・マイグレーションが含まれている。

GitLab は通常、パッチ公開から 90 日後にセキュリティ問題の詳細を一般公開するが、すべての技術的な詳細の公表を待たず、速やかにアップデートを適用すべきである。

今回の GitLab の修正は、Node.js や PHP のセキュリティアップデートと時期が重なっている。Web アプリケーションや開発サービスを運用するセキュリティチームにおいては、複数製品のパッチ適用を並行して進める必要がある。Cyber Security News の報道によると、Node.js はセキュリティ・アップデートを公開し、26.x/24.x/22.x の各ブランチで確認された 10 件の脆弱性に対処している。修正済みバージョンとして、26.12.1/24.22.1/22.23.4 が挙げられている。

一方、PHP も PHP2Shell に対する緊急パッチを公開している。この PHP2Shell と呼ばれる問題は、メモリ処理に関係する緊急度の高い脆弱性 CVE-2026-109618/CVE-2026-109619 として識別されている。