Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-35031 — Jellyfin Media Server 中严重的路径遍历到远程代码执行(RCE)漏洞(CVSS 9.9)。包含概念验证(PoC)漏洞利用程序、技术分析和检测工具。 | Kitploit
工具/GitHubGitHub/keraattin/cve-2026-35031
权限提升漏洞分析漏洞利用Web应用程序漏洞利用渗透测试论文与研究学习与教育Payload 开发
GitHubkeraattin/cve-2026-35031

CVE-2026-35031

Jellyfin Media Server 中严重的路径遍历到远程代码执行(RCE)漏洞(CVSS 9.9)。包含概念验证(PoC)漏洞利用程序、技术分析和检测工具。

查看仓库
245个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-35031:Jellyfin 字幕上传路径遍历至 RCE

CVE-ID CVSS Score CWE Affected Product Status

摘要

Jellyfin 媒体服务器中存在一个严重的路径遍历漏洞,允许具有“上传字幕”权限的经过身份验证的用户将文件上传到磁盘上的任意位置。通过利用字幕上传端点中未经验证的 Format 字段,攻击者可以写入敏感位置的文件、窃取敏感数据、提升权限,并最终通过 LD_PRELOAD 注入以 root 身份执行任意代码。

  • CVSS 评分: 9.9(严重)
  • 受影响版本: Jellyfin < 10.11.7
  • 修复版本: Jellyfin 10.11.7+
  • 所需身份验证: 是(具有字幕上传权限的非管理员用户)
  • 远程代码执行: 是,以 root 身份
  • 利用复杂度: 低

目录

  1. 快速事实
  2. 什么是 Jellyfin?
  3. 漏洞深度剖析
    • 根因分析
    • 攻击链分解
    • LD_PRELOAD 利用
  4. 影响分析
  5. 受影响版本
  6. 检测
    • Python 扫描器
    • Nmap NSE 脚本
  7. 入侵指标
  8. 修复建议
  9. 参考链接
  10. 作者

快速事实

属性值
CVE IDCVE-2026-35031
CVSS 评分9.9(严重)
CWECWE-22:对受限目录的路径名限制不当('路径遍历')
受影响产品Jellyfin 媒体服务器
受影响版本< 10.11.7
修复版本10.11.7 及更高版本
漏洞类型路径遍历 + 任意文件写入 + RCE
所需身份验证是(非管理员用户)
所需权限“上传字幕”权限
默认端口8096/TCP
GitHub 公告GHSA-9p5f-5x8v-x65m
补丁状态已可用并发布
漏洞利用公开是

什么是 Jellyfin?

Jellyfin 是一款免费开源的媒体服务器,旨在帮助您管理和流式传输个人媒体收藏。它提供与商业媒体服务器类似的功能,但拥有完全透明的源代码和社区控制权。

主要功能

  • 自托管媒体流媒体(音乐、电影、电视节目)
  • 多用户支持,具有细粒度的权限控制
  • 字幕管理与同步
  • 通过 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

Format 参数本用于指定字幕格式(srt、vtt、ass 等),但反而会被当作文件路径的一部分:``` 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 媒体服务器进程(大多数部署中以 root 身份运行)
- 操作系统内核和库
- 存储的媒体和元数据
- 用户认证系统
- 链接到 glibc 的系统级进程

### 业务影响
- **数据泄露:** 所有存储的凭据和用户数据遭到泄露
- **服务中断:** Jellyfin 及其他潜在服务变得不可用
- **横向移动:** 受感染系统成为网络攻击的跳板
- **合规违规:** 如果个人身份信息(PII)泄露,可能违反 GDPR、CCPA、HIPAA
- **供应链风险:** 如果 Jellyfin 用于提供共享或企业媒体服务

---

## 受影响版本

| 版本 | 状态 | 备注 |
|---------|--------|-------|
| < 10.8.0 | 易受影响 | 存在原始漏洞 |
| 10.8.0 - 10.11.6 | 易受影响 | 可能存在路径遍历和 RCE |
| 10.11.7+ | 已修补 | 格式字段已正确验证 |
| 10.12.0+ | 已修补 | 包含安全修复的最新版本 |

### 版本检测
可通过检查 `/System/Info/Public` 端点返回的版本字符串来检测该漏洞:```
GET /System/Info/Public HTTP/1.1
Host: jellyfin-server:8096

Response:
{
  "ServerName": "MyJellyfin",
  "Version": "10.10.3",  < Vulnerable
  "ProductName": "Jellyfin",
  "StartupWizardCompleted": true
}

检测

Python 扫描器

CVE-2026-35031_Jellyfin_RCE_detector.py 脚本提供自动化漏洞检测。

下载工具