Gogsの脆弱性により、攻撃者がLargeファイルストレージデータを静かに上書きできる可能性

Gogsに重大なセキュリティ脆弱性が発見されました。Gogsは広く使用されているオープンソースの自己ホスト型Gitサービスです。/

CVE-2026-25921として追跡されているこの脆弱性により、認証されていない攻撃者が任意のリポジトリ全体でGit Large File Storage(LFS)オブジェクトを静かに上書きできるようになります。

コンテンツ検証の欠如を悪用することで、脅威アクターは正規のプロジェクトファイルを悪意のあるバックドアに置き換え、ステルス性の高いソフトウェアサプライチェーン攻撃を実行できます。

  • CVE ID: CVE-2026-25921
  • 深刻度: 重大(CVSS v3.1スコア:9.3)
  • 影響を受けるソフトウェア: gogs.io/gogs(Goエコシステム)
  • 影響を受けるバージョン: 0.14.1以前
  • パッチ済みバージョン: 0.14.2
  • 弱点: CWE-345(データの真正性の検証不足)

脆弱性の技術的詳細

Git LFSは、オーディオ、データセット、コンパイル済みバイナリなどの大きなファイルをGit内のテキストポインタに置き換え、実際のファイルコンテンツをリモートサーバーに保存するように設計されています。

Gogsの脆弱性は、これらのリモートファイルの処理方法に関する2つの危険なアーキテクチャ上の決定に起因しています:

  • リポジトリ分離の欠如: GogsはすべてのLFSオブジェクトを単一のグローバルディレクトリツリーに保存します。ストレージパスはObject ID(OID)のみに基づいて生成され、ファイルを特定のリポジトリIDにリンクしません。これはオブジェクトがGogs インスタンス全体で完全に共有されることを意味します。
  • コンテンツ検証の欠如: ユーザーがLFSオブジェクトをアップロードするとき、Gogsはアップロードされた実際のファイルコンテンツが要求されたSHA-256ハッシュ(OIDとして使用される)と一致することを検証することに完全に失敗しています。アプリケーションは単にクライアントのファイルを受け入れ、その真正性を検証することなく保存します。
  • 安全でない上書き権限: サーバーのコードは、クライアントがアップロードを再試行して既存ファイルを上書きすることを明示的に許可しており、同じOIDは常に同じコンテンツを意味すると仮定しています。この仮定は、悪意のあるクライアントが関与している場合、完全に破綻します。

攻撃者はネットワーク上でこの脆弱性を非常に低い複雑さで悪用できます。攻撃は、脅威アクターが被害者のリポジトリ内のターゲットLFSオブジェクトのOIDを特定するときに始まります。

次に、攻撃者は自分のリポジトリへのファイルアップロードを開始しますが、意図的に被害者のOIDを使用します。

このアップロード中に、攻撃者は侵害されたバイナリやマルウェアが埋め込まれたスクリプトなどの改ざんされたファイルを送信します。

Gogsはファイルを無条件に受け入れ、グローバルストレージパス内の正規のLFSオブジェクトを上書きします。

整合性チェックがないため、元のリポジトリからターゲットLFSオブジェクトをダウンロードするユーザーは、攻撃者の悪意のあるペイロードを静かに受け取ります。

Webページやコマンドラインに警告が表示されないため、ソフトウェアサプライチェーン侵害のための非常に危険なベクトルになります。

セキュリティ研究者zjuchenyuanによるCVE-2026-25921の開示に続いて、Gogsのメンテナーは公式の修正をリリースしました。

Gogsに依存している組織は、次の防御措置を実装する必要があります:

  • 公式パッチを適用: 管理者は、アップロードされたLFSオブジェクトが要求されたSHA-256ハッシュに厳密に一致することを確認するための必須検証を導入するバージョン0.14.2以降にGogsインスタンスをすぐに更新する必要があります。
  • LFS整合性の検証: アップグレード後、セキュリティチームは既存のLFSオブジェクトの整合性を手動で検証して、パッチの前にファイルが悪意を持って上書きされていないことを確認する必要があります。
  • アクセスの監視: 即座のパッチ適用ができない場合、組織はGogsインスタンスへのネットワークアクセスを制限するか、外部ユーザー登録を一時的に無効にして、権限のないアクターが悪意のあるアップロードをホストするためのリポジトリを作成するのを防ぐ必要があります。

翻訳元: https://gbhackers.com/gogs-flaw-attackers-overwrite-large-file-storage-data/

ソース: gbhackers.com