人気のオープンソース自己ホスト型GitサービスGogsが、サーバーをリモートコード実行(RCE)にさらすCritical深刻度のゼロデイ脆弱性の影響を受けていると、Rapid7が報告した。
CVSSスコア9.4が割り当てられたこのCritical深刻度の問題は、認証済みの攻撃者が悪意のあるブランチ名を含むプルリクエストを通じて悪用できる引数インジェクションの欠陥である。
Rapid7は技術レポートの中で、プルリクエストが「『マージ前にリベース』マージ操作中にgit rebaseへ–execフラグを注入し」、Gogsサーバープロセスユーザーの権限でコマンドが実行されると説明している。
「標準的なマージは2つのブランチ履歴を結合するマージコミットを作成する。マージ前のリベースは、線形な履歴を生成するためにヘッドブランチのコミットをベースブランチの上に再適用する」と、Rapid7は説明している。
「マージ前にリベース」操作はデフォルトでは有効になっていないが、リポジトリのオーナーや管理者であれば誰でも有効にでき、登録済みのユーザーは自分が作成したリポジトリのオーナーに自動的になる。
リベース中、マージ関数はプルリクエストのベースブランチ名をgit rebase関数に渡す際、後続の引数がフラグとして解釈されるのを防いでいない。
引数インジェクションに対する検証とサニタイズが不十分であること、およびgit rebaseが各コミットの再適用後にシェルコマンドを実行するようGogsに指示する–execフラグを受け付けることにより、攻撃者はブランチ名に悪意のある引数を含めることができ、それが各コミットの再適用後に実行される。
Rapid7によれば、攻撃者は自分のアカウントとリポジトリ内のみで操作するため、この脆弱性はユーザーの操作なしに悪用できる。
「Gogsはデフォルトでオープン登録が有効になっており、リポジトリの作成数に制限がないため、未認証の攻撃者はデフォルト設定のインスタンスにアカウントとリポジトリを作成するだけでよい」と、同サイバーセキュリティ企業は述べている。
リポジトリのオーナーであれば、設定画面で1つのトグルを操作するだけでリベースマージを有効にでき、エクスプロイトチェーン全体を他のユーザーとのやり取りなしに実行できる。リベースが有効になっているリポジトリへの書き込みアクセス権を持つ攻撃者は、この欠陥を直接悪用できる。
「その結果、Gogsサーバープロセスユーザーとして任意のコマンドが実行され、攻撃者はサーバーを侵害し、インスタンス上のすべてのリポジトリ(他のユーザーのプライベートリポジトリを含む)を読み取り、認証情報(パスワードハッシュ、APIトークン、SSHキー、2FAシークレット)をダンプし、ネットワークからアクセス可能な他のシステムへ横移動し、ホストされているリポジトリのコードを改ざんする能力を得る」とRapid7は述べている。
同サイバーセキュリティ企業によれば、デフォルト設定で動作しているWindows、Linux、macOS上のGogsサーバーが影響を受ける。複数のユーザーアカウントを持つインスタンス(多くの組織でのデフォルト)が最も大きな影響を受ける。
Rapid7はエクスプロイトチェーン全体を自動化するMetasploitモジュールと、防御担当者が潜在的な侵害を調査するのに役立つ侵害の痕跡(IoC)を公開した。
Gogsのメンテナーには3月中旬に本脆弱性が通知された。脆弱性レポートの受領は確認されたものの、公開時点ではパッチはリリースされていない。
これは過去半年間で公開されたGogsの2件目のゼロデイである。12月、WizはCVE-2025-8110の詳細を公開した。これは、数ヶ月間ゼロデイとして悪用されていた不適切なシンボリックリンク処理の問題である。
翻訳元: https://www.securityweek.com/gogs-zero-day-exposes-servers-to-remote-code-execution/