オープンソースGitサービス「Gogs」の深刻なRCEバグに未修正のまま – エクスプロイトモジュールが公開

セキュリティ

研究者は3月に脆弱性を報告。それ以降、メンテナーからの返答なし

深刻な穴が開いたまま、誰もパッチを当てていない。人気のオープンソース自己ホスト型GitサービスであるGogsに存在する深刻なリモートコード実行(RCE)バグは、認証済みのユーザーであれば誰でも——特別な権限不要——デフォルトインストール環境において悪用可能であり、脆弱なサーバーの完全な侵害、認証情報や多要素認証シークレットの窃取、さらにはホスト上のリポジトリのコード改ざんを通じた広範なサプライチェーン攻撃すら可能にする。

あるセキュリティ研究者が3月中旬にこのCVSSスコア9.4の欠陥をプロジェクトメンテナーに報告した。いまだパッチは存在しない。しかし、公開されたMetasploitモジュールはすでに存在しており、実際の悪用事例の報告が近く出始めることが予想される。

この脆弱性はWindows、Linux、macOSを含むすべてのサポート対象プラットフォームとインストール方法に影響するとRapid7の研究者Jonah Burgessは述べており、同氏は3月17日にGitHub(GHSA-qf6p-p7ww-cwr9)経由でGogsメンテナーにこのバグを発見・報告した

3月28日にレポートを受け取ったと最初に確認を受けた後、BurgessはGogsチームからW一切連絡がなかったと述べている——進捗状況を確認した際も、脆弱性開示日を通知して修正完了前に公開を延期するか確認した際も同様だった。

「Gogsからその後一切連絡はなく、GHSAは3月28日以降も未回答のままです」とBurgessはThe Registerに語った。「現在、公式パッチが存在しないため、私たちのチームは本日(金曜日)修正案を含むプルリクエストを提出しており、現在レビュー待ちの状態です。現時点では、この脆弱性が実際に悪用されているという証拠はありません。」

GogsのスポンサーであるDigitalOceanもThe Registerの問い合わせに応答しておらず、セキュリティ問題へのパッチ提供時期についても回答がなかった。

この脆弱性は、Gogsのプルリクエストマージフロー、具体的にはinternal/database/pull.go内のMerge()関数における引数インジェクションの欠陥に起因している。

GogsのリポジトリオーナーまたはAdminが「マージ前にリベース」を有効にし、ユーザーがプルリクエストを開くと、PRのベースブランチ名がコマンドオプションの終端を示す -- セパレーターなしで git rebase コマンドに直接渡される。また、Gogsは入力を適切にサニタイズすることにも失敗している。

これにより、攻撃者は悪意のあるブランチ(例:--exec=touch${IFS}/tmp/rce_proof)を作成でき、Gitはそれをブランチ名ではなく--execフラグとして扱い、ペイロードを実行する。

Windowsインストール環境では、ペイロードの配信方法が若干異なるため、Burgessはクロスプラットフォーム対応のアプローチを自動実装するエクスプロイトモジュールを開発した。

メンテナーが欠陥を修正するまでの間、BurgessはGogsユーザーに対して問題を軽減するための以下の予防措置を講じるよう提案している。

まず最も重要なこととして、信頼できないユーザーによるアカウント作成を防ぐため、ユーザー登録を制限すること(app.iniでDISABLE_REGISTRATION = true)。

リポジトリ作成の制限(app.iniでMAX_CREATION_LIMIT = 0)により、ユーザーが自分のリポジトリを作成することを防ぐことで、最も容易な攻撃経路——リベースを有効にした新しいリポジトリの作成——もブロックできるが、既存リポジトリへの書き込みアクセス権を持つユーザーによる悪用は防げない。

最後に、リベースマージの設定を監査し、設定 > 詳細設定から「マージ前にリベース」を無効にすること。「これはリポジトリのオーナーまたはAdmin権限を持つ悪意あるユーザーに対しては有効な防御策ではありません。彼らはいつでもリベースを再有効化できるからです」と脅威ハンターは警告している。「この設定を制限するグローバルまたは組織レベルの設定は存在しません。」 ®


翻訳元: https://www.theregister.com/security/2026/05/29/no-fix-yet-for-critical-gogs-rce-bug-exploit-module-is-out/5248691

ソース: theregister.com