広く使用されているオープンソースの自ホスト型GitサービスであるGogsで重大なセキュリティ脆弱性が発見されました。これにより、攻撃者はリポジトリ全体にわたってGit Large File Storage(LFS)オブジェクトを静かに上書きすることができる可能性があります。
この脆弱性はCVE-2026-25921として追跡されており、CVSS v3.1スコアが9.3で、Gogsバージョン0.14.1以前に影響を及ぼします。
セキュリティ研究者らは、この脆弱性により、認証されていない攻撃者が正当なプロジェクトファイルをバックドアされたバイナリやスクリプトなどの悪意のあるペイロードに置き換えることで、密かなソフトウェアサプライチェーン攻撃を可能にする可能性があると警告しています。
CVE-2026-25921はCWE-345の下で分類され、データの真正性の検証不足を指します。この問題はGogsがGit Large File Storageオブジェクトをどのように処理するかに存在します。
Git LFSは、データセット、メディアファイル、コンパイルされたバイナリなどの大規模ファイルをメインのGitリポジトリとは別に保存することで管理するために設計されています。
完全なファイルをGitに保存する代わりに、リポジトリはリモートサーバーに保存されたファイルを参照する小さなポインタを含みます。
影響を受けるGogsバージョンでは、LFSストレージアーキテクチャの弱さにより、攻撃者は認証なしにこれらのオブジェクトを操作することができます。
この脆弱性は、GogsがLFSオブジェクトをどのように保存および検証するかに関する複数の設計上の問題から生じています。
まず、GogsはリポジトリごとにLFSオブジェクトを分離しません。すべてのLFSファイルは単一のグローバルディレクトリツリーに保存され、ストレージパスはObject ID(OID)のみによって決定されます。
OIDは特定のリポジトリIDに関連付けられていないため、オブジェクトはGogs全体インスタンス全体で事実上共有されます。
次に、プラットフォームはアップロードされたファイルが実際に宣言されたSHA-256ハッシュ値と一致することを検証できません。
クライアントはOIDとして使用されるハッシュを提供しますが、Gogsはアップロードされたファイルコンテンツがそのハッシュに対応しているかどうかを検証しません。
Gogsを使用している組織は、直ちに以下の措置を講じるべきです:
翻訳元: https://cyberpress.org/gogs-vulnerability-2/