トップ/記事一覧/Gitea脆弱性の一覧、1.26.4はもう危険、最新1.27.2へ更新を
gitea-cve-cover-ja

Gitea脆弱性の一覧、1.26.4はもう危険、最新1.27.2へ更新を

自分でサーバを立てて使うソースコード管理ツール「Gitea」に深刻な脆弱性が9件見つかり、修正版1.26.4が公開されました。最も重い穴はDocker版で特定の設定を使っている場合、パスワードなしで管理者になりすませるもの。自前でGiteaを運用している企業や個人は今すぐ更新を。

ニュース2026年7月4日公開最終更新 2026年8月20日
目次
この記事のポイント

自分でサーバを立てて使うソースコード管理ツール「Gitea」に深刻な脆弱性が9件見つかり、修正版1.26.4が公開されました。最も重い穴はDocker版で特定の設定を使っている場合、パスワードなしで管理者になりすませるもの。自前でGiteaを運用している企業や個人は今すぐ更新を。

自分でサーバを立ててソースコードを管理する開発向けツール「Gitea(ギテア)」の最新版は、2026年8月13日に公開された1.27.2です(2026年8月20日時点)。この記事が最初に案内した1.26.4は、その後に公表された穴が残ったままで、いま使い続けるのは危険な版になりました。

1.26.4に残っているもののうち重いのは2件です。ひとつはCVE-2026-59774で、ログインしていない相手にサーバ上のファイルを読み取られます。公開リポジトリがひとつでもあれば成立します。もうひとつはCVE-2026-60004で、リポジトリ(ソースコードの置き場所)に書き込める権限があればサーバ上で好きな命令を動かせます。新規登録を開けているサーバなら、誰でもその権限を自分で作れます。どちらも危険度は10点満点で9.8。修正は1.27.1に入りました。

GiteaはGitHubやGitLabのように、プログラムのソースコードを保管・共有するためのソフトです。違いは「自分たちのサーバにインストールして、社内や個人で完結して使える」点にあります。クラウドに預けたくないコードを手元で管理できる手軽さから、中小企業や社内チーム、自宅サーバ(ホームラボ)で広く使われています。その代わり、更新の判断と実行はすべて運用する側に残ります。

Giteaの最新バージョンと、どこまで直っているか

2026年6月以降、Giteaは短い間隔で修正版を出し続けています。いま動かしている版がどの位置にあるかは、次の表で確かめられます。公開日は開発元のリリース一覧の値です。

バージョン公開日その版のまま使うと残るもの
1.27.22026年8月13日現時点で公表されている穴は
塞がれています
1.27.12026年7月27日8月14日に公表された7件
(二段階認証の回避など)
1.27.02026年7月13日上に加えて、ログイン不要の
ファイル読み取りなど2件
1.26.42026年6月21日上に加えて、1.27.0で直った
45件
1.26.32026年6月20日1.26.4と同じ。加えて停止した
利用者が復活する穴と表示不具合
1.26.2以前2026年5月20日以前上に加えて、ヘッダ1行での
管理者なりすましなど

1.27.0で直った45件という数は、開発元の1.27.0公開告知に並んでいるCVE番号の数です。ひとつの版でこれだけ出るのは、外部の研究者からの報告がまとめて処理された結果で、開発元がGitHub上で公開している勧告は2026年4月以降で84件(2026年8月20日時点)に達しています。

1.26系を使っている場合

1.26.5は出ていません。今後も出ません。開発元の報告受付の案内には「セキュリティ修正は最新のリリース系列と開発中の本流にだけ入る」と書かれています。1.27系が出た時点で、1.26系への修正提供は終わっています。「1.26.4は当時の最新の修正版だから大丈夫」という理解は、2026年7月13日を境に成り立たなくなりました。

1.26系から1.27系への更新には、動きが変わる変更が4つ含まれます。自動ビルド機能(Gitea Actions)で処理の手順書(ワークフロー)を使い回す仕組みの変更、画面に読み込むスクリプトの許可の出し方の変更、配布物の署名のやり方の変更(実行ファイルやDocker用の配布物の署名を確かめている場合は、確かめ方が変わります)、そして応答に「中身の種類を勝手に推測させない」指定が初期状態で付くようになったことです。4件とも公開告知の冒頭にまとめて並んでいるので、更新前に目を通してください。

使っているGiteaのバージョン確認

自分のサーバがどの版で動いているかは、次のどれかで分かります。上から順に手間が少ない方法です。

  • 画面の一番下を見る。初期設定では「Powered by Gitea Version: 1.27.2」のように版が出ます。設定で消せるため、出ていない場合もあります。
  • 問い合わせ用の窓口を叩く。https://自分のGiteaのアドレス/api/v1/version を開くと {"version":"1.27.2"} のように返ります。ログイン不要で見られるサーバが多く、外から自分のサーバを点検するときにも使えます。
  • 管理画面で見る。管理者でログインし、サイト管理のダッシュボードを開きます。非推奨になった設定項目の警告も、同じ画面の上部に出ます。
  • サーバ上で確かめる。直接インストールしているなら gitea --version。Docker(コンテナ、アプリを箱ごと動かす仕組み)で動かしているなら docker exec -u git コンテナ名 gitea --version です。

この窓口はGiteaから枝分かれしたForgejoでも同じように動き、そちらは 16.0.0-dev-694-33ae492b+gitea-1.22.0 のように自分の版とGitea互換の世代を並べて返します。返ってきた文字列がこの形なら、動いているのはGiteaではなくForgejoです。

2026年6月以降に公表されたGiteaの脆弱性一覧

開発元の勧告が2026年6月以降に公表されたもののうち、危険度の数値が付いていて7.0以上のものを、27件すべて高い順に並べます(2026年8月20日時点)。危険度は10点満点で、9.0以上が最も重い区分です。数字は開発元の勧告に載っている値です。このうち7月28日以降に公表された8件(CVE-2026-59774/60004/73278/73535/73539/73800/73802/73804)は、米国の脆弱性データベース(NVD)にまだ登録されていません。登録済みのものでも数字がずれることがあり、CVE-2026-58443は勧告が9.6、NVDは9.1です。

CVE番号内容危険度直った版悪用の前提
CVE-2026-73802自動ビルドの箱から
外へ抜け出せる
9.9(緊急)Gitea Runner
3.0.0
ビルド手順を書ける
権限
CVE-2026-20896ヘッダ1行で
他人になりすまし
9.8(緊急)1.26.3Docker版+
前段認証が有効時
CVE-2026-60004差分の取り込み経由で
サーバ上の命令を実行
9.8(緊急)1.27.1リポジトリへの
書き込み権限
CVE-2026-59774ログインなしで
サーバ上のファイルを読取
9.8(緊急)1.27.1公開リポジトリが
1つあること
CVE-2026-22874内部ネットワークへの
不正アクセス
9.6(緊急)1.26.3要ログイン
(一般利用者権限)
CVE-2026-58426他リポジトリの
成果物を盗み読み
9.6(緊急)1.26.2要ログイン
(一般利用者権限)
CVE-2026-58443公開用に絞ったトークンで
非公開側に書き込み
9.6(緊急)1.27.0アクセストークン
CVE-2026-58424承認の関門を
恒久的に素通り
8.9(重要)1.26.3要ログイン
(一般利用者権限)
CVE-2026-73535二段階認証を回避し
居座られる
8.8(重要)1.27.2パスワードの漏洩+
外部ログイン連携が有効
CVE-2026-73800自動ビルドから
秘密情報を持ち出し
8.8(重要)1.27.2複製元への
変更の取り込み依頼
CVE-2026-287373Dファイルの表示画面で
仕込んだ命令が動く
8.7(重要)1.26.0ファイルを置ける権限+
閲覧者が開くこと
CVE-2026-57894取り込み時の転送を追って
社内のリポジトリを持ち出し
8.5(重要)1.27.0要ログイン
(一般利用者権限)
CVE-2026-26231読めるだけのリポジトリに
勝手に書き込める
8.5(重要)1.26.2要ログイン
(読み取り権限)
CVE-2026-27771内容が公表されていない8.2(重要)1.26.2勧告に記載なし
CVE-2026-73804トークンの権限制限を
丸ごと迂回
8.1(重要)1.27.2利用者向けトークン
CVE-2026-732782要素目の確認が
飛ばされる
8.1(重要)1.27.2外部ログイン連携が
有効時
CVE-2026-58439承認の印を持ち回して
保護した枝へ取り込み
8.1(重要)1.27.0リポジトリへの
書き込み権限
CVE-2026-55987停止した利用者が
外部ログインで復活
8.1(重要)1.27.0外部ログイン連携が
有効時
CVE-2026-28699読み取り用のトークンで
書き込みまでできる
8.1(重要)1.26.2連携アプリのトークン
CVE-2026-24791公開用に絞ったトークンで
自分の非公開情報を操作
8.1(重要)1.26.2公開用に絞った
トークン
CVE-2026-22555作成権限のない組織に
複製を作り秘密を持ち出し
8.1(重要)1.26.0組織の読み取り専用の
一員
CVE-2026-58423非公開リポジトリの
大きなファイルを読み取り
7.7(重要)1.26.3SSHで接続できる
利用者
CVE-2026-73539文書の変換処理経由で
サーバ上の命令を実行
7.5(重要)1.27.2外部変換ツールの
設定+書き込み権限
CVE-2026-54481内部通信で相手の
証明書を確かめていない
7.5(重要)1.27.0同じネットワークに
入り込めること
CVE-2026-58437変更を送るときの指定で
公開・非公開を切り替え
7.1(重要)1.27.0リポジトリへの
書き込み権限
CVE-2026-28740他人の非公開ファイルを
自分の置き場に取り込む
7.1(重要)1.26.3別リポジトリへの
書き込み権限
CVE-2026-20779ワンタイムパスコードの
使い回し
7.1(重要)1.26.3条件付き

表に載らなかったものも数は多く、開発元の勧告84件のうち、危険度6点台以下が27件、危険度の数値そのものが付いていないものが29件あります。権限のないトークンで非公開の記録が読めてしまう類のものは、この中に多く含まれます。全件は開発元の勧告一覧公式サイトのCVE一覧で確認できます。番号ごとに追うより、最新版に上げれば表のすべてが片づくという見方のほうが実務では速いです。

あなたのGiteaは危ないのか

上から順に見ていけば、自分の環境がどの程度の急ぎかが分かります。

  • 版が1.27.2なら、公表済みの穴は塞がれています。あとはGitea Actionsを使っている場合にランナー側の更新が残ります(後述)。
  • 版が1.27.0か1.26系で、インターネットから見えるなら、最優先です。CVE-2026-59774はログインなしで成立し、公開リポジトリがひとつあれば条件を満たします。設定ファイルの中身を読み出され、そこからサーバ上の命令実行につながる手順まで勧告に書かれています。
  • 新規登録を開けているなら、CVE-2026-60004も成立します。攻撃側は自分でアカウントを作り、自分のリポジトリを作るだけで書き込み権限を得られます。
  • 社内からしか見えない場所に置いているなら、外部から直接は届きません。ただし社内の利用者や、社内から動く別のソフトが踏み台になる経路は残ります。

Docker版で追加で確認すること

Docker版のGiteaは、1.26.2以前の配布物に「信頼するアクセス元」を示す項目が REVERSE_PROXY_TRUSTED_PROXIES = *(=すべてを信頼)と書き込まれていました。手動でビルドした版や公式バイナリを入れた版は、同じ項目の初期値が 127.0.0.0/8,::1/128(自分自身だけを信頼)で、影響を受けません。1.26.2の配布用設定には55行目にこの行があり、1.27.2では行ごと消えています。

注意したいのは、版を上げても、自分で書いた設定ファイルに残った値は上書きされないことです。過去にDocker版で立ち上げてそのまま使っている場合、データ領域の app.ini に当時の値が写し取られたままのことがあります。更新後に一度、[security]REVERSE_PROXY_TRUSTED_PROXIES と、[service]ENABLE_REVERSE_PROXY_AUTHENTICATION の2つを確かめてください。後者が false のままなら、前段のサーバから受け取る利用者名を信じる仕組み自体が動いていないので、この経路は成立しません。

CVE-2026-20896: ヘッダ1行で管理者になりすまし

2026年6月に公表され、この記事がもともと扱っていた穴です。危険度9.8で、NVDにも2026年7月3日に登録されています。成立するのは、Docker版で動かしていて、なおかつ「リバースプロキシ認証」を有効にしている場合です。これは前段のサーバでログイン処理を任せ、Gitea側は「誰がログイン済みか」を通信の見出し(ヘッダ)で受け取る仕組みで、社内シングルサインオン(一度のログインで複数サービスを使える仕組み)などで使われます。

この2つがそろうと、Giteaのコンテナに直接届けられる立場なら誰でも X-WEBAUTH-USER: admin のような1行を足すだけで、そのユーザーとして扱われます。パスワードもワンタイムコードも要りません。開発元の勧告には、報告者が実際に alice になりすませたときの手順がそのまま載っています。管理者を乗っ取られると、サーバ上のすべてのリポジトリのソースコード、外部サービスと連携するためのSSH鍵、自動ビルドに登録したパスワードやAPIキーが、まとめて相手の手に渡ります。

1.26.3での修正は2つです。配布用の設定から「すべて信頼」の行を削ったこと、そしてリバースプロキシ認証を、管理者が設定して初めて有効になる方式に変えたことで、どちらも1.26.3の公開告知に明記されています。検証用の実行コード(PoC)は報告者の@rz1027がGitHubで公開しており、手順はすでに広く知られた状態です。

Giteaのアップデート手順

開発元の更新手順に沿うと、やることは次の順です。1.26系から1.27系への移動は世代をまたぐため、3番目を飛ばさないでください。

  • 変更点を先に読む。1.27.0の公開告知の冒頭に、動きが変わる項目が4つ挙がっています。
  • 非推奨の設定を片づける。管理画面の上部に警告が出ている項目は、次の版で起動を止める原因になります。
  • バックアップを取る。1.26系から1.27系へ上げるとデータベースの構造が新しくなり、そのままでは元の版に戻せません。戻すにはバックアップが要ります。同じ1.27系の中の移動(1.27.0から1.27.2など)は構造が変わらないので、行き来できます。
  • 止めてから入れ替える。Docker版なら新しい配布物を取得し、動いているコンテナを止めてから新しい版で起動します。指定するのは gitea/gitea:1.27.2 です(配布物は2026年8月13日更新)。直接インストールしているなら、サービスを止め、実行ファイルを置き換えて起動します。
  • 版を確かめる。起動後に /api/v1/version を開き、1.27.2 が返ることを見ます。

画面の見た目を自分で書き換えている場合は、テンプレートが新しい版と合っているかも確認してください。合っていないと、画面が壊れたりエラーになったりします。

Gitea Actionsを使っているならランナーも更新する

Gitea本体だけでは足りない穴が1件あります。自動ビルドを実際に走らせる側のソフト「Gitea Runner」のCVE-2026-73802で、危険度は9.9とこの一連の中で最も高い値です。

ビルドは通常、隔離された箱(コンテナ)の中で動きます。管理者が「特権モード」を切っていれば、箱の中から外のサーバには手が届かないはずでした。ところがビルド手順を書く側が箱の起動時の指定を自由に書けたため、ホスト側の資源を共有する指定を並べることで、箱の外に出てサーバの管理者権限で命令を実行できました。リポジトリに手順ファイルを置ける人なら誰でも成立します。共用のランナーを社内で1台立てて複数チームで使っている構成が、最も影響を受けます。

修正はGitea Runner 3.0.0(2026年7月31日公開)です。危険な指定を落とすようになりました。特権モードを明示的に有効にしている場合はこれまでどおり通ります。3.0.0には動きが変わる変更が3つ含まれるため、公開告知を読んでから入れ替えてください。

ForgejoにGiteaと同じ穴はあるのか

Forgejo(フォージェオ)はGiteaから枝分かれした別プロジェクトで、版の付け方も違います。2026年8月20日時点の最新は16.0.3と15.0.7で、どちらも同じ日に公開されました。Giteaの版番号とは対応しないので、「1.27.2に相当するForgejo」という探し方はできません。

CVE-2026-20896のもとになった REVERSE_PROXY_TRUSTED_PROXIES = * の行については、Docker版の配布用設定を版ごとに見た結果が分かれました。Forgejo 16.0.0以降にはこの行がありません。一方、15.0.xには最新の15.0.7の時点でも残っています。ただしForgejoでも、前段のサーバから利用者名を受け取る仕組みを動かす設定([service]ENABLE_REVERSE_PROXY_AUTHENTICATION)の初期値は「無効」です。有効にしていないなら、この行が残っていてもなりすましの経路は成立しません。15系を使っていて、なおかつ前段認証を有効にしているなら、信頼するアクセス元を自分の前段サーバだけに絞ってください。なお、Giteaが1.26.3で加えた「管理者が明示的にオンにしない限り動かない」という作り替えが、Forgejo 15系に入っているかどうかまでは確認できていません。

それ以外のCVE番号との対応は照合できません。ForgejoはリリースノートにCVE番号を書いていないためです。ただし直った内容の記述からは、同じ種類の入口が塞がれている方向が読み取れます。

  • 16.0.2と15.0.6(2026年7月末)の「org-mode形式(文章とメモをまとめて書くための記法のひとつ)の描画から任意のファイルが読まれる問題」は、Gitea側のCVE-2026-59774と同じ種類です。
  • 16.0.3と15.0.7(2026年8月20日)の「公開用に絞ったトークンで、変更の取り込み依頼(プルリクエスト)を更新する窓口に触れられる問題」は、CVE-2026-58443と同じ種類です。
  • 同じ回の「共同編集者に所有者権限を指定できてしまう問題」はCVE-2026-73814と、「複製したリポジトリからの取り込み依頼で、ビルド手順の読み込み元を取り違える問題」はCVE-2026-73800と、それぞれ同じ種類です。

Giteaの代替を探すべきか

脆弱性の多さを理由に乗り換えを考える場合、先に押さえておきたいことがあります。自前で立てる限り、更新の責任は乗り換え先にもそのまま残ります。Giteaの派生元にあたるGogsでも認証なしの乗っ取りの穴が出ていますし、社内設置型のGitLabでも繰り返し見つかっています。件数の多さは、そのソフトが危ないという意味とは限らず、報告を受け付けて公開している体制があるという意味でもあります。

実務で効いてくる差は、別のところにあります。Giteaは、修正が入るのが最新のリリース系列だけです。1.27系が出た時点で1.26系は打ち切られ、1.26.5は出ませんでした。これは、新しい版の変更に追随し続けないと安全な版に留まれないことを意味します。対してForgejoは、2026年8月20日に16.0.3と15.0.7を同じ日に出しており、1つ前の系列にも修正を届けています。「大きな変更をすぐには入れられないが、安全な版では動かしたい」という運用なら、この違いは検討材料になります。

クラウド側に預けてよいコードなら、更新の責任ごと相手に渡す選び方もあります。開発元自身が提供するGitea Cloudの案内には、導入・管理・更新・バックアップ・増減を開発元が引き受けると書かれています。ただし修正版が出てからどれだけで当たるのかは公開されていないので、更新の速さを条件にするなら契約前に確かめてください。ソースコード基盤や自動ビルドの安全性を継続的に点検したい場合は、OSSサプライチェーンスキャナーのような仕組みの併用も選べます。

実際に攻撃されているのか

2026年8月20日時点で確認できている事実

  • CVE-2026-20896の検証用コードが公開され、これを狙う探索行為が2026年7月に観測されている(Sysdigの観測をThe Hacker Newsが報道
  • CVE-2026-59774とCVE-2026-60004は、悪用の手順そのものが開発元の勧告に書かれている
  • 米政府CISAが公開する「実際に攻撃が確認された脆弱性リスト」(KEVカタログ)の2026年8月19日版(1671件)に、Gitea関連は1件も入っていない

7月に観測された探索は初期段階のもので、Sysdigの脅威リサーチ責任者Michael Clark氏は当時「本格的な悪用にまでは至っていない」と説明していました。その後、大規模な被害が広がったという報告は公開情報では見当たりません。ただし7月末以降に公表された2件は、ログイン不要または新規登録だけで成立し、手順も勧告に書かれています。CVE-2026-20896のときより前提が緩いため、探されたときに当たる範囲は広くなっています。

更新履歴

  • 2026年8月20日: 更新先を1.27.2(2026年8月13日公開)に改めました。脆弱性一覧を、2026年6月以降に公表された危険度7.0以上の27件すべてに差し替え(1.27.1で直った2件、1.27.2で直った7件、Gitea Runnerの1件を含む)。バージョン早見表、版の確かめ方、更新手順、Forgejoとの違い、代替の検討材料を新設。開発元の勧告一覧とリリース告知、各版の配布用設定ファイル、CISAのKEVカタログ(2026年8月19日版)で確認しました。インターネット公開台数の推計は再測定できなかったため外しました。
  • 2026年7月24日: 検証用コードの公開と探索行為の観測、1.26.4も対象となるCVE-2026-58443を追記しました。
  • 2026年7月4日: 公開。1.26.3/1.26.4で塞がれた脆弱性を扱いました。

参照元

avatar-m-1

Backend Engineer / AWS / Django / Go