CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



GHSA-7789-65HX-F26W
5.30.12%

GHSA-7789-65HX-F26W: Username Enumeration via Authentication Timing Side-Channel in FileBrowser Quantum

Alon Barad
Alon Barad
Software Engineer

Mar 24, 2026·5 min read·1 visit

PoC Available

Executive Summary (TL;DR)

A timing side-channel in FileBrowser Quantum's authentication flow allows unauthenticated attackers to enumerate valid usernames by measuring the response latency of login requests.

FileBrowser Quantum versions prior to v1.3.2-beta contain a timing side-channel vulnerability in the authentication endpoint. The application processes login requests for valid usernames significantly slower than for invalid usernames due to the conditional execution of the bcrypt hashing algorithm. This discrepancy allows unauthenticated remote attackers to enumerate valid usernames registered on the target system.

Vulnerability Overview

FileBrowser Quantum provides web-based file management capabilities, exposing an authentication endpoint at /api/auth/login. Versions prior to v1.3.2-beta contain a timing side-channel vulnerability, tracked under CWE-208. The flaw allows unauthenticated remote attackers to perform username enumeration by analyzing the response time of authentication requests.

The discrepancy arises from the application's handling of database lookups and subsequent password hashing operations. The application optimizes the login flow by exiting early when a requested user does not exist in the backend database. This structural design inadvertently exposes the internal state of the application to external observers.

Username enumeration serves as a critical reconnaissance phase for attackers targeting authentication systems. By confirming which usernames are valid, an attacker maps the active accounts on the platform. This information directly enables targeted credential-based attacks against the exposed service.

Root Cause Analysis

The vulnerability stems from an optimization in the authentication logic that prematurely aborts the login process when a user lookup fails. When an authentication request is received, the application first queries the database for the provided username. If the query returns no user, the application immediately returns an error, resulting in a server response time of approximately 1 to 4 milliseconds.

Conversely, if the user exists, the application proceeds to verify the provided password using the computationally expensive bcrypt hashing algorithm. The bcrypt comparison function introduces an intentional and heavy processing delay, typically taking 40 to 50 milliseconds to complete depending on the configured cost factor.

This measurable difference in execution time creates a reliable oracle for attackers. The application effectively telegraphs the result of the database query through the execution time of the HTTP request. An attacker simply measures the delta between the short execution path and the long execution path to determine the existence of a specific username.

Code Analysis

In the vulnerable implementation, the server evaluated the database lookup error immediately upon return from the user store. The CheckPwd function, which wraps the bcrypt comparison, was bypassed entirely for non-existent users. This short-circuit evaluation directly caused the timing discrepancy.

The patch, introduced in commit af08800667b874620edc6f44c3e2e64fec7abd85, normalizes the execution time across all authentication attempts. The developers implemented a constant-time authentication flow by introducing a pre-calculated dummy hash (utils.InvalidPasswordHash) during application startup.

user, getErr := userStore.Get(username)
var passwordHash string
if getErr != nil {
    passwordHash = utils.InvalidPasswordHash
} else {
    passwordHash = user.Password
}
 
err = utils.CheckPwd(password, passwordHash)
 
if getErr != nil {
    return nil, fmt.Errorf("unable to get user: %v", getErr)
}

This updated logic ensures that the utils.CheckPwd function executes during every login attempt, regardless of whether the user exists. The error from a failed user lookup is deferred until after the password hash comparison completes, masking the existence of the user behind a uniform response latency.

Exploitation Methodology

Exploiting this vulnerability requires the attacker to submit multiple login requests utilizing a dictionary of candidate usernames. The attacker records the precise response latency for each HTTP POST request submitted to the /api/auth/login endpoint. By applying statistical analysis to the collected response times, the attacker groups the results into two distinct clusters: fast responses and slow responses.

The reliability of this attack depends heavily on network conditions. In a low-latency environment, such as a local area network or a direct peering connection, the 40-millisecond delta is consistently measurable. Exploitation over the public internet introduces network jitter, which complicates the timing measurements.

To overcome network jitter, attackers average the response times over multiple requests for the same username. By establishing a baseline latency for known-invalid usernames, the attacker sets a threshold. Any username that consistently yields a response time significantly above this threshold is marked as valid.

Impact Assessment

Successful exploitation provides the attacker with a verified list of valid usernames registered on the target FileBrowser Quantum instance. While this does not grant direct access to the system or result in remote code execution, it represents a high-value reconnaissance capability. This information exposure directly facilitates subsequent attack chains.

Attackers utilize the enumerated username list to conduct targeted brute-force attacks and credential stuffing campaigns. By eliminating invalid usernames from their target list, attackers significantly reduce the volume of requests required for a successful intrusion.

This reduction in traffic volume also decreases the likelihood of triggering account lockout mechanisms or rate-limiting security controls. Organizations rely on the ambiguity of login errors to slow down attackers; stripping away this ambiguity weakens the overall authentication posture.

Remediation and Mitigation

Administrators must upgrade FileBrowser Quantum to version v1.3.2-beta or later to remediate this vulnerability. The updated version implements a constant-time authentication flow, neutralizing the timing side-channel. No additional configuration changes are required to activate this protection once the software is updated.

Organizations unable to patch immediately should implement mitigation controls at the network perimeter. Web Application Firewalls (WAF) can be configured to strictly rate-limit requests to the /api/auth/login endpoint from individual IP addresses. This slows down the enumeration process, making large-scale dictionary attacks unfeasible.

Security teams should monitor authentication logs for anomalous patterns. An unusually high volume of failed login attempts spanning diverse usernames, originating from a single source, strongly indicates active enumeration activity. Automated detection platforms can perform statistical analysis on response times for known-bad versus potentially-good usernames to proactively identify vulnerable endpoints.

Official Patches

FileBrowser QuantumRelease v1.3.2-beta containing the fix

Fix Analysis (1)

Technical Appendix

CVSS Score
5.3/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
EPSS Probability
0.12%
Top 100% most exploited

Affected Systems

FileBrowser Quantumgithub.com/gtsteffaniak/filebrowser

Affected Versions Detail

Product
Affected Versions
Fixed Version
FileBrowser Quantum
gtsteffaniak
< 1.3.2-beta1.3.2-beta
AttributeDetail
CWE IDCWE-208
Attack VectorNetwork
CVSS Score5.3
ImpactInformation Disclosure (Username Enumeration)
Exploit StatusProof of Concept Available
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1589Gather Victim Identity Information
Reconnaissance
T1110.001Password Guessing
Credential Access
CWE-208
Information Exposure Through Timing Discrepancy

The product does not adequately prevent the timing of its operations from being observable to an external actor, allowing an attacker to extract sensitive information.

Vulnerability Timeline

Vulnerability patched in version v1.3.2-beta
2024-03-01

References & Sources

  • [1]GitHub Advisory: GHSA-7789-65HX-F26W
  • [2]Fix Commit in FileBrowser Quantum
  • [3]Release v1.3.2-beta
  • [4]FileBrowser Quantum Repository

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.