Gogsに重大な脆弱性、パストラバーサル経由でリモートコード実行が可能に

セルフホスト型Gitサービス「Gogs」に重大な脆弱性が見つかりました。認証済みの攻撃者が組織の作成時にパストラバーサルを悪用することで、サーバー上でコマンドを実行できる可能性があります。

この脆弱性はCVE-2026-52813として追跡されており、Aikidoのセキュリティ研究者であるJorian Woltjer氏が報告し、Gogsバージョン0.14.3で修正されています。

InstallingSecurity Systems

問題の原因は、あるAPIエンドポイントが組織のユーザー名を無害化せずに受け取り、そのままファイルシステムのパス構築処理に渡していたことにあります。

Gogsは、設定済みのリポジトリルートに組織名を追加する際にfilepath.Joinを使用していました。通常のアカウント登録処理ではユーザー名が安全な英数字・ハイフン・アンダースコア・ピリオドのみに制限されていましたが、組織作成APIでは同様の検証が行われていませんでした。

Gogsの重大な脆弱性がリモートコード実行を可能に

認証済みの攻撃者は、../というトラバーサルシーケンスを含む組織名を指定することで、Gogsに本来意図されたストレージパスの外側にリポジトリを作成させることが可能でした。

たとえば、細工した組織名を使えば/tmpのような書き込み可能な一時ディレクトリを標的にできます。その結果、Gogsは攻撃者が選択したファイルシステムの場所にベアGitリポジトリを初期化してしまいます。

Image

当初、この挙動は限定的なファイル書き込みプリミティブを提供するに過ぎないように見えました。ベアリポジトリには通常の作業ツリーではなくGitのメタデータが格納されているため、任意のアプリケーションファイルを直接上書きする余地は限られていました。

しかし、Woltjer氏は、Gogsのウェブベースの編集機能を悪用することで、このプリミティブをリモートコード実行に転化できることを実証しました。Gogsは、ユーザーがウェブインターフェース経由でリポジトリファイルを編集する際に一時的なワークツリーを作成します。

攻撃者はまず、ウェブ編集をサポートする正規のリポジトリを作成し、続いてトラバーサル名を持つ組織を利用して、悪意のあるベアリポジトリをその一時ワークツリー内に配置することができます。

正規のリポジトリのローカルクローンから、攻撃者はtraversal.git/hooks/updateのようなパスにGitフックをコミットできます。Gogsのウェブエディタは.git/を含むパスをブロックしますが、標準的なGit pushを使えばこの制限を回避できます。

検証ロジックは.gitという名前のパスセグメントを厳密に一致するもののみ探していたため、traversal.gitのようなディレクトリはこのチェックをすり抜けてしまいました。その後、ネストされたリポジトリに対してAPI経由でコミットが行われると、悪意のあるupdateフックが起動し、Gitサービスが使用するアカウント権限で攻撃者が制御するコマンドが実行されてしまいます。

今回の情報開示では、Git HTTPリクエストに影響する別の認可上の弱点であるCVE-2026-52810についても取り上げられています。Gogsは、サービスのクエリパラメータに基づいてリクエストを読み取り専用のpullとして部分的に分類する一方で、実際の操作はリクエストパスに基づいてルーティングしていました。

git-receive-packリクエストに対してservice=git-upload-packを指定すると、pushがpullとして扱われる可能性があり、これにより読み取り専用ユーザーがプライベートリポジトリに書き込めてしまう恐れがあります。Woltjer氏の報告によれば、この認可の問題はプライベートリポジトリと、閲覧に認証を要求するデプロイ環境に影響するとのことです。

管理者は、CVE-2026-52813への対処としてGogs 0.14.3以降へのアップグレードを行うとともに、不審な組織名や想定外のリポジトリパス、不正なGitフックがないかインスタンスを確認し、receive-packの認可バイパスに関するアップストリームの修正状況を注視することが推奨されます。

今回の脆弱性は、識別子の検証が甘く認可の境界が曖昧になることで、Gitホスティング機能がサーバー側の攻撃経路に転じかねないことを示しています。特に、リポジトリが自動化されたCI/CDワークフローに組み込まれている環境では、この点に注意が必要です。

Prevent incidents due to slow investigations. Power your Tier 1 with threat intelligence from 15K SOCs: Integrate TI Lookup in your SOC

翻訳元: https://gbhackers.com/critical-gogs-flaw-enables-remote-code-execution/

本記事は gbhackers.com の記事を翻訳・要約したものです。