CVE-2026-59218: Open WebUI: Account enumeration via observable login timing discrepancy
Summary
The /api/v1/auths/signin endpoint leaked whether an email address belonged to a registered account through a response-time side channel. Password verification ran bcrypt only when the email was found in the database; for a non-existent email the request returned early without hashing. The expensive bcrypt comparison therefore made valid-account attempts respond significantly slower (~180 ms) than non-existent ones (~5 ms), so an unauthenticated attacker could enumerate valid accounts by measuring response time.
Details
On signin the backend looked the user up by email and only performed the bcrypt password comparison if a record existed. A missing email short-circuited before any hashing, producing the timing gap. The built-in brute-force throttling did not prevent it: sending one request at a time with a small delay between requests stays under the rate limit while still exposing the difference.
Observed in the reporter's run (HTTP 400 for every attempt, the response time is the signal):
Email Status Response time joe@example.com 400 186 ms <- valid account larry@example.com 400 9 ms jose@example.com 400 6 ms james@example.com 400 5 ms
Impact
An unauthenticated attacker can enumerate which email addresses are registered accounts, which enables targeted password-spraying against confirmed accounts. The impact is amplified by MFA not being enabled by default. No data is read or modified; the disclosure is limited to account existence.
Patched
The authentication path now runs a bcrypt verification against a constant placeholder hash whenever the email does not resolve to an active credential, so a real hash comparison executes on every attempt and the response time is the same whether or not the account exists. Fixed in 0.10.0.
Credits
@dievus
Other sources
Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. Prior to 0.10.0, the /api/v1/auths/signin endpoint looked users up by email and only ran bcrypt password verification when a credential existed, making registered-account attempts measurably slower than missing-email attempts and allowing unauthenticated account enumeration. This issue is fixed in version 0.10.0.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
pip/open-webuito a version that resolves this vulnerability.Fixed in 0.10.0 - Upgrade
Upgrade
Open WebUIto a version that resolves this vulnerability.Fixed in 0.10.0 - Compensating control
Verify MFA is enabled by default/for all accounts, since the impact is amplified by MFA not being enabled by default.
Event History
Frequently Asked Questions
What is CVE-2026-59218?
CVE-2026-59218 is a vulnerability in Open WebUI that allows account enumeration via observable login timing discrepancies.
What is the severity of CVE-2026-59218?
The severity of CVE-2026-59218 is classified as medium with a CVSS score of 5.3.
How do I fix CVE-2026-59218?
To fix CVE-2026-59218, you should update Open WebUI to version 0.10.0 or later.
What impact does CVE-2026-59218 have on user security?
CVE-2026-59218 can potentially allow attackers to validate the existence of user accounts through timing attacks.
What version of Open WebUI is vulnerable to CVE-2026-59218?
Versions of Open WebUI prior to 0.10.0 are vulnerable to CVE-2026-59218.