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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-35031 — Jellyfin Media Serverにおける重大なパストラバーサルからRCEに至る脆弱性(CVSS 9.9)。概念実証エクスプロイト、技術分析、および検出ツールを含みます。 | Kitploit
ツール/GitHubGitHub/keraattin/cve-2026-35031
特権昇格脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト論文と研究学習と教育ペイロード開発
GitHubkeraattin/cve-2026-35031

CVE-2026-35031

Jellyfin Media Serverにおける重大なパストラバーサルからRCEに至る脆弱性(CVSS 9.9)。概念実証エクスプロイト、技術分析、および検出ツールを含みます。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-35031: Jellyfin 字幕アップロードのパストラバーサルによるRCE

CVE-ID CVSS Score CWE Affected Product Status

TL;DR

Jellyfin Media Server における深刻なパストラバーサル脆弱性により、認証済みユーザーは「字幕をアップロード」権限を持つ場合、ディスク上の任意の場所にファイルをアップロードできます。字幕アップロードエンドポイントの検証されていない Format フィールドを悪用することで、攻撃者は機密性の高い場所にファイルを書き込み、機密データを取得し、権限を昇格させ、最終的に LD_PRELOAD インジェクションを介して root として任意のコードを実行できます。

  • CVSS スコア: 9.9(Critical)
  • 影響を受けるバージョン: Jellyfin < 10.11.7
  • 修正バージョン: Jellyfin 10.11.7+
  • 認証の必要性: あり(字幕アップロード権限を持つ非管理者ユーザー)
  • リモートコード実行: 可能(root として)
  • 攻撃の複雑さ: 低

Table of Contents

  1. 基本情報
  2. Jellyfin とは
  3. 脆弱性の詳細
    • 根本原因の分析
    • 攻撃チェーンの詳細
    • LD_PRELOAD の悪用
  4. 影響分析
  5. 影響を受けるバージョン
  6. 検出
    • Python スキャナ
    • Nmap NSE スクリプト
  7. 侵害の痕跡(IOC)
  8. 修復策
  9. 参考情報
  10. 著者

基本情報

プロパティ値
CVE IDCVE-2026-35031
CVSS スコア9.9(Critical)
CWECWE-22: 制限付きディレクトリへのパス名の制限の不備('Path Traversal')
影響を受ける製品Jellyfin Media Server
影響を受けるバージョン< 10.11.7
修正バージョン10.11.7 以降
脆弱性の種類パストラバーサル + 任意ファイル書き込み + RCE
認証の必要性あり(非管理者ユーザー)
必要な権限「字幕のアップロード」権限
デフォルトポート8096/TCP
GitHub アドバイザリGHSA-9p5f-5x8v-x65m
パッチの状態提供済み・リリース済み
エクスプロイト公開状況あり

Jellyfin とは

Jellyfin は、個人のメディアコレクションを管理およびストリーミングするためのフリーかつオープンソースのメディアサーバーです。商用メディアサーバーと同様の機能を提供しますが、ソースコードが完全に公開され、コミュニティによって管理されています。

主な機能

  • セルフホスト型メディアストリーミング(音楽、映画、TV 番組)
  • 詳細な権限制御を備えたマルチユーザーサポート
  • 字幕の管理と同期
  • HTTP/HTTPS でアクセス可能な Web ベースのインターフェース
  • クロスプラットフォーム展開(Linux、Windows、macOS)
  • さまざまなメディア形式とストリーミングプロトコルのサポート

ネットワークアーキテクチャ```

                      Jellyfin Media Server (Port 8096)
                     /                |                \
                    /                 |                 \
               Web UI            REST API          Media Streams
              (Browser)        (Authenticated)    (Subtitle Upload)
                                     |
                    /System/Info/Public (unauthenticated)
                    /Videos/{itemId}/Subtitles (vulnerable)
                    /Library/Collections (admin)

Client Devices > Network > Jellyfin Server > Database + Storage | /var/lib/jellyfin/ /etc/ld.so.preload (writable via vulnerability)

---

## 脆弱性の深掘り

### 根本原因分析

この脆弱性は、字幕アップロードエンドポイント(`/Videos/{itemId}/Subtitles`)に存在し、ファイルアップロードを受け付けてディスク上に保存します。重大な欠陥は、Format フィールドパラメータの検証が不十分な点にあります。

#### 脆弱なコードパターン

このエンドポイントは、Format フィールドを適切に検証またはサニタイズせずに字幕アップロードを処理します:```
POST /Videos/{itemId}/Subtitles HTTP/1.1
Content-Type: multipart/form-data

[Binary subtitle data]
Format: /../../../etc/ld.so.preload
Language: en

The Format parameter is intended to specify subtitle format (srt, vtt, ass, etc.) but instead gets treated as part of the file path:``` Base Path: /var/lib/jellyfin/subtitles/ User Input: /../../../etc/ld.so.preload Result: /var/lib/jellyfin/subtitles/../../../etc/ld.so.preload Resolved: /etc/ld.so.preload (via path traversal)

### 攻撃チェーンの内訳

この脆弱性は複数の弱点を連鎖させ、rootとしてのリモートコード実行を達成します:```
Step 1: Subtitle Upload with Path Traversal
        POST /Videos/{itemId}/Subtitles
        Format: /../../../etc/ld.so.preload
                    |
                    v
Step 2: Arbitrary File Write
        Write attacker-controlled data to /etc/ld.so.preload
                    |
                    v
Step 3: File Read via .strm Files
        Create .strm files pointing to sensitive paths
        Extract database contents and credentials
                    |
                    v
Step 4: Database Extraction
        Access /jellyfin/jellyfin.db via .strm
        Extract admin user hashes
                    |
                    v
Step 5: Admin Privilege Escalation
        Reset admin password or create new admin account
                    |
                    v
Step 6: RCE via LD_PRELOAD Injection
        LD_PRELOAD=/path/to/malicious.so java
        Arbitrary code execution as root

パストラバーサルの仕組み```

Input Validation Failure:

Format Field Validation: Expected: srt | vtt | ass | ssa | sub | subrip Actual: /../../../etc/ld.so.preload Result: NO VALIDATION > PATH TRAVERSAL ALLOWED

File Write Operation: String Concatenation: "/subtitles/" + user_format + ".srt" | NO CANONICALIZATION: Path component not resolved before write NO WHITELIST: Format values not restricted NO BOUNDS CHECK: ".." sequences not filtered | v Final Path: /etc/ld.so.preload (EXPLOITED)

### LD_PRELOAD の悪用

LD_PRELOAD テクニックは、Linux システム上で強力な権限昇格およびコード実行手法です:```
LD_PRELOAD Injection Flow:

1. Attacker writes malicious .so (shared object) to /etc/ld.so.preload
   
   /etc/ld.so.preload contents:
   /path/to/attacker.so

2. Java process starts (Jellyfin runs on Java):
   
   kernel > execve("java", ...) > glibc initialization
                                     |
                                     v
                          Check /etc/ld.so.preload
                                     |
                                     v
                          Load attacker.so FIRST
                                     |
                                     v
                          Execute attacker code
                          (BEFORE Java main())

3. Code Execution Context:
   
   Process Owner:   root (Jellyfin typically runs as root)
   Permissions:     Full system access
   Timing:          Before application initialization
   Detection:       Minimal (malicious code runs early)

4. Attacker Capabilities:
   
   > Create reverse shell with full root privileges
   > Extract sensitive data before application starts
   > Modify Java application behavior
   > Persist via cron jobs or systemd services
   > Establish C2 communication

LD_PRELOADが権限昇格として機能する理由```

User Level Access > Path Traversal > Write /etc/ld.so.preload | v (Next process execution) | Kernel reads /etc/ld.so.preload > Loads attacker .so | v Malicious code executes in root context | v Full system compromise

---

## 影響分析

### 機密性
**重大** - 完全な情報漏えい
- データベースの抽出:管理者資格情報、ユーザーパスワード、APIキー
- 字幕ファイルとメディアメタデータの露出
- 機密データを含む設定ファイルへのアクセス
- さらなる悪用のためのシステム情報収集

### 完全性
**重大** - システム全体のファイル改ざん
- ディスク上の任意の場所への任意のファイル書き込み
- アプリケーションバイナリの改変
- システム設定の改ざん
- データベースの破損または操作

### 可用性
**重大** - サービスの中断と拒否
- LD_PRELOAD 内の悪意のある .so によるシステムシャットダウンまたはクラッシュ
- 大規模なファイル書き込みによるディスク容量の枯渇
- プロセスの強制終了またはリソースの枯渇
- 完全なサービス利用不可

### 影響を受けるコンポーネント
- Jellyfin Media Server プロセス(ほとんどのデプロイメントで root として実行)
- OS カーネルとライブラリ
- 保存されたメディアとメタデータ
- ユーザー認証システム
- glibc にリンクされたシステム全体のプロセス

### ビジネスへの影響
- **データ侵害:** 保存されているすべての資格情報とユーザーデータが侵害される
- **サービス停止:** Jellyfin および他のサービスが利用できなくなる可能性がある
- **横展開:** 侵害されたシステムがネットワーク攻撃の踏み台になる
- **コンプライアンス違反:** PII が露出した場合、GDPR、CCPA、HIPAA 違反
- **サプライチェーンリスク:** Jellyfin が共有またはエンタープライズメディアを配信する場合

---

## 影響を受けるバージョン
ツールをダウンロード