Gogsに重大なRCE脆弱性が開示:未修正の欠陥によりリポジトリが完全に侵害されるリスク
セルフホスト型Gitサービスである**Gogs**に、認証済みユーザーが任意のコードを実行できる可能性のある重大なリモートコード実行(RCE)脆弱性が発見されました。この脆弱性には現在**CVE**識別子が割り当てられていませんが、デフォルト設定のGogsインスタンスに重大なリスクをもたらします。

### Gogs RCE脆弱性:詳細分析
**Rapid7**のセキュリティ研究者Jonah Burgess氏が、オープンソースのセルフホスト型Gitサービスである**Gogs**に重大な脆弱性を開示しました。この欠陥により、認証済みのユーザーはサーバー上でリモートコード実行(RCE)を達成できます。この脆弱性は、プルリクエストに悪意のあるブランチ名を作成することで、「マージ前のリベース」操作中に`git rebase`に`--exec`フラグを注入できることに起因します。**Rapid7**は、この脆弱性をCVSSスコアリングシステムで9.4と評価しています。
### 攻撃ベクターの理解
この攻撃は、あるブランチの変更を別のブランチに統合する`git rebase`機能を悪用します。`--exec`フラグは、リベース操作中に各コミットが再適用される際にシェルコマンドを実行することを可能にします。重要なのは、この脆弱性を悪用するために管理者権限や他のユーザーからのいかなる操作も必要としないことです。攻撃者は、デフォルト設定の**Gogs**インスタンスにアカウントとリポジトリを作成するだけで攻撃を開始できます。
Burgess氏は次のように説明しています。「リポジトリを作成した登録済みユーザーは、自動的にそのオーナーになります。そこから、リベースマージを有効にするのは設定の単一トグルであり、攻撃チェーン全体は他のユーザーの操作なしに実行できます。」
### 代替攻撃シナリオ
リポジトリでリベースマージが既に有効になっているシナリオでは、書き込み権限を持つユーザーが直接この欠陥を悪用してコード実行権限を取得できます。しかし、リポジトリ作成が制限されている**Gogs**インスタンスでは、攻撃者はリベースマージが有効になっているリポジトリへの書き込み権限を持っている必要があります。
### 未修正の脆弱性と潜在的な影響
本稿執筆時点では、2026年3月17日にメンテナーに報告されたにもかかわらず、この脆弱性は未修正のままです。悪用に成功した場合、攻撃者は以下を実行できる可能性があります。
* サーバーへの侵入
* インスタンス上のすべてのリポジトリへのアクセス
* 認証情報のダンプ
* ネットワークからアクセス可能な他のシステムへのラテラルムーブメント
* ホストされている任意のリポジトリのコードの改ざん
さらに、この脆弱性はクロステナントデータ侵害につながり、同じサーバーでホストされている他のユーザーのプライベートリポジトリを公開する可能性があります。この欠陥は、Windows、Linux、macOSを含むすべてのサポートされているプラットフォームに影響します。
### 緩和策
インターネットに公開されている**Gogs**インスタンスは推定1,141件あり、VPNや内部ネットワークの背後にあるインスタンスはさらに多く存在するため、潜在的な影響は甚大です。公式パッチがない場合、以下の緩和策が推奨されます。
* ユーザー登録の制限(`app.ini`の`DISABLE_REGISTRATION = true`)
* リポジトリ作成の制限(`app.ini`の`MAX_CREATION_LIMIT = 0`)
* リベースマージ設定の監査
### Metasploitモジュールが利用可能
**Rapid7**は、LinuxおよびWindowsターゲットの両方に対する攻撃チェーンを自動化する**Metasploit**モジュールをリリースしました。このモジュールは2つのモードをサポートしています。
1. 攻撃者のアカウントの下に一時的なリポジトリを作成し、攻撃を実行してからリポジトリを削除する。
2. 攻撃者が書き込みおよびマージアクセス権を持つ既存のリポジトリを対象とする。
Burgess氏は次のように述べています。「攻撃者が自身の所有するリポジトリを作成して削除する場合、サーバーログに残る痕跡はHTTP 500エラーのみです。既存のリポジトリを悪用する場合、追加のアーティファクトが残ります。」