Wins Security Information

보안 정보

앞 내용 보기 다음 내용 보기
취약점 정보[CVE-2021-21402] Jellyfin Arbitrary File Read
작성일 2021-05-07 조회 2390

 

 

 

 

Jellyfin에 Arbitrary File Read 취약점이 존재합니다.

 

Jellyfin은 네트워크 장치에 디지털 미디어 파일을 구성, 관리 및 공유하도록 설계된 멀티미디어 응용 프로그램 제품군으로  Microsoft Windows, macOS, Linux 또는 Docker 컨테이너를 실행하는 시스템에 설치된 서버 응용 프로그램과 스마트 폰, 태블릿, 스마트 TV, 스트리밍 미디어 플레이어, 게임 콘솔과 같은 클라이언트 장치에서 실행되는 다른 응용 프로그램을 구성합니다.

 

해당 취약점은 /Audio/{ID}/hls/ 경로에서 사용자 제공 파일 경로의 불충분한 유효성 검사로 인해 발생합니다. 원격의 공격자는 악의적으로 조작된 HTTP 요청을 전송하여 공격할 수 있습니다.

 

공격 성공 시, 정보 유출이 발생될 수 있습니다.

 

 

 

취약점 설명

 

NVD - CVE-2021-21402

CVSS v2.0 Severity and Metrics:

Base Score: 4.0 MEDIUM

 

 

[그림1. NVD 내역]

 

 

 

취약점 분석

 

해당 취약점은 /Audio/{ID}/hls/ 경로에서 사용자 제공 파일 경로의 불충분한 유효성 검사로 인해 발생합니다.

 

 

 

[그림2. MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs 코드]

 

 

MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs에서 해댱 경로를 GET 요청으로 받아오는데 경로에 대한 검증없이 사용하는 것을 확인할 수 있습니다

 

 

 

[그림3. Jellyfin.Api/Controllers/HlsSegmentController.cs 코드]

 

 

패치된 버전의 Jellyfin 소프트웨어는 GET 요청으로 해당 경로를 GetHlsAudioSegmentLegacy라는 이름으로 받아오는 것을 확인할 수 있습니다. 또 해당 경로가 null값이거나 transcodePath로 시작하지않으면 BadRequest로 검증해 패치한 것을 확인할 수 있습니다.

 

취약한 버전은 Jellyfin 10.7.1 아래의 버전들로 10.7.1 버전 이상부터는 패치가 완료되었습니다.

 

 

 

공격 분석 및 테스트

 

CVE-2021-21402의 공격 패킷은 다음과 같습니다.

 

 

 

[그림4. 공격 패킷(1)]

 

 

 

[그림5. 공격 패킷(2)]

 

 

/Audio/이후에 오는 값은 ID로 사용자에 따라 달라지는 가변값입니다. /hls/이후에 ..\(..%5C) 문자열을 이용해 최상위 디렉토리에 접근해 데이터베이스나 .ini파일을 열람할 수 있습니다.

 

해당 공격은 ..\(..%5C) 문자열을 사용하기 때문에 Jellyfin 소프트웨어를 Window 환경에서 사용중인 경우에 특히 더 취약합니다. 이후에 오는 /stream.mp3는 또다른 확장자인 /stream.aac 경로로도 공격이 가능합니다.

 

 

 

취약점 대응 방안

 

1. 최신 버전 사용

 

해당 벤더사에서 발표한 최신의 버전으로 업데이트한다.

https://github.com/jellyfin/jellyfin/releases

 

 

2. WINS Sniper 제품군 대응 방안

 

[5425] Jellyfin hls Arbitrary File Read

[5426] Jellyfin hls Arbitrary File Read.A

 

첨부파일 첨부파일이 없습니다.
태그 CVE-2021-21402  Jellyfin  Arbitrary File Read