Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-35031 — Jellyfin Media Server의 치명적인 경로 순회(path traversal)로 인한 RCE 취약점(CVSS 9.9). 개념 증명(PoC) 익스플로잇, 기술 분석 및 탐지 도구를 포함합니다. | Kitploit
도구/GitHubGitHub/keraattin/cve-2026-35031
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingPapers & ResearchLearning & EducationPayload Development
GitHubkeraattin/cve-2026-35031

CVE-2026-35031

Jellyfin Media Server의 치명적인 경로 순회(path traversal)로 인한 RCE 취약점(CVSS 9.9). 개념 증명(PoC) 익스플로잇, 기술 분석 및 탐지 도구를 포함합니다.

245개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

CVE-2026-35031: Jellyfin 자막 업로드 경로 순회를 통한 RCE

CVE-ID CVSS Score CWE Affected Product Status

TL;DR

Jellyfin Media Server의 심각한 경로 순회 취약점으로 인해 "자막 업로드" 권한이 있는 인증된 사용자가 디스크의 임의 위치에 파일을 업로드할 수 있습니다. 자막 업로드 엔드포인트의 검증되지 않은 Format 필드를 악용하면 공격자는 민감한 위치에 파일을 쓰고, 민감한 데이터를 추출하고, 권한을 상승시키고, 궁극적으로 LD_PRELOAD 주입을 통해 루트 권한으로 임의 코드를 실행할 수 있습니다.

  • 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: 제한된 디렉터리의 경로명에 대한 부적절한 제한 ('Path Traversal')
영향받는 제품Jellyfin Media Server
영향받는 버전< 10.11.7
수정 버전10.11.7 이상
취약점 유형경로 순회 + 임의 파일 쓰기 + RCE
인증 필요예 (비관리자 사용자)
필요한 권한"자막 업로드" 권한
기본 포트8096/TCP
GitHub 보안 권고GHSA-9p5f-5x8v-x65m
패치 상태제공 및 배포됨
공개 익스플로잇예

Jellyfin이란?

Jellyfin은 개인 미디어 컬렉션을 관리하고 스트리밍할 수 있도록 설계된 무료 오픈소스 미디어 서버입니다. 상용 미디어 서버와 유사한 기능을 제공하지만 완전한 소스 코드 투명성과 커뮤니티 통제를 갖추고 있습니다.

주요 기능

  • 자체 호스팅 미디어 스트리밍 (음악, 영화, TV 프로그램)
  • 세분화된 권한 제어를 제공하는 다중 사용자 지원
  • 자막 관리 및 동기화
  • HTTP/HTTPS로 접근 가능한 웹 기반 인터페이스
  • 크로스 플랫폼 배포 (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이 공유 또는 엔터프라이즈 미디어를 제공하는 경우

---

## 영향을 받는 버전
도구 다운로드