Gitea はバージョン 28.0.0 をリリースし、認証バイパス、未承認のワークフロー実行、サーバサイドリクエストフォージェリ(SSRF)、格納型クロスサイトスクリプティング、サービス拒否(DoS)に関する 20 件の脆弱性を修正しました。
Vulnerabilityscanning service
2026年9月30日に発表されたこのリリースでは、従来のバージョン番号の先頭にあった「1.」が廃止されました。開発チームは、リポジトリへのアクセス、自動化、外向きの通信に影響する脆弱性を緩和するため、管理者に早急なアップグレードを促しています。
とくに深刻なのは、アカウントのなりすましと、セルフホストランナー上で信頼できないワークフローが実行される問題です。両者は別々の攻撃経路です。認証の弱点はアカウントへのアクセスを危険にさらし、Actions の承認バイパスはコントリビューターが制御するコードにランナーのインフラをさらします。なお、発表では、認証なしでサーバを完全に乗っ取れる単一の攻撃チェーンには触れておらず、CVSS スコアも示していません。
Gitea の重大な脆弱性
CVE-2026-103059 は Gitea 内蔵の SSH サーバに影響します。このサーバはこれまで、公開鍵の照合に大文字小文字を区別しない SQL の LIKE 演算を使っていました。この脆弱性により、大文字小文字だけを変えて偽造した RSA 鍵が、別ユーザーのアカウントと一致してしまう可能性がありました。今回の更新では、この照合をフィンガープリントによる識別に置き換え、アカウントとの対応付けを修正しています。
これとは別に、インストーラーの脆弱性 CVE-2026-96404 では、既存のデータベースに対してインストールを再実行すると、既存の管理者のパスワードを確認しないまま、そのセッションを作成できました。ユーザーが 1 人だけのデータベースでは、再インストール時の確認要件も回避されていました。
このリリースでインストーラーの挙動は修正されました。ただし、攻撃が成立するかどうかは、特定のデプロイ条件でインストール経路にアクセスできるかに左右されます。
Gitea Actions では、CVE-2026-104632 により、承認待ちのプルリクエストのワークフローをキャンセルして再実行でき、承認が未了のままジョブが走る状態になっていました。
つまり、初めて参加したコントリビューターのコードが、事前の承認なしにセルフホストランナーで実行される可能性がありました。更新版では、承認の明示的な記録が必須となり、承認者も識別されます。
CVE-2026-94205 では、別の承認バイパスが判明しました。チェックがイベントの発生者しか見ていなかったためです。その結果、メンテナーが起点となったプルリクエストのイベントで、信頼できないフォークのワークフローが実行される可能性がありました。
Gitea は現在、イベントの実行者とプルリクエストの作成者の両方を検証します。関連する修正として、承認によってキャンセル済みのジョブが復活することを防ぎ、未承認のワークフローが信頼できる並行実行をキャンセルすることも阻止します。
外向きのネットワーク制限を突破する脆弱性も複数見つかりました。CVE-2026-70357 は、マイグレーション時のホスト名検証と、その後の Git 接続を切り離していたため、DNS リバインディングで内部ホストにアクセスできました。CVE-2026-101027 は、許可されたドメインに対する宛先 IP のチェックを回避し、CVE-2026-101029 は、複数の DNS 応答を悪用して内部への読み取りと書き込みを可能にしていました。
Vulnerabilityscanning service
プッシュミラーや Git の HTTP リダイレクトでも、ポリシーを回避できる経路が新たに見つかりました。Gitea は今後、以前のホスト名チェックだけに頼らず、Git のネットワーク操作を内部プロキシ経由にします。このプロキシが、接続中も外向き通信の制限を適用します。
CVE-2026-95106 では、Git ツリーのエントリ名を重複させることで悪意あるコンテンツを隠せました。レビューしたファイルと、チェックアウトや継続的インテグレーション(CI)で使われるファイルが食い違う恐れがありました。
受信するプッシュと転送には、Git オブジェクトの整合性チェックが行われるようになりました。さらに CVE-2026-103667 では、攻撃者が制御するコンテナ blob のコンテンツタイプを通じて、格納型のクロスサイトスクリプティング(XSS)が可能でした。blob には今後 application/octet-stream のコンテンツタイプが使われます。
管理者は、破壊的変更を確認したうえでデータをバックアップし、バイナリまたはコンテナを入れ替えてサービスを再起動してください。Git はバージョン 2.25.0 以降が必要です。とくに外向きポリシーには注意が必要です。厳格モードでは原則として通信を拒否する動作となり、非推奨となったマイグレーション設定には新しい代替設定が用意されています。
このリリースでは、ワークフローのマトリックスにも上限を設けました。展開前の組み合わせが 256 を超えるものは拒否され、メモリ枯渇の可能性に対処しています。
このほかのパッチでは、リポジトリ移管時のアクセス、デプロイキーの権限バイパス、古いチーム権限の残存、Issue 解析でのサービス拒否の脆弱性といった未解決の問題も修正されています。
平均復旧時間(MTTR)を 21 分短縮し、サイバー脅威を被害発生前に阻止。ANYRUN のサンドボックスを SOC に導入。
翻訳元: https://gbhackers.com/critical-gitea-vulnerabilities/