Open WebUI: LDAP and OAuth First-User Race Condition Allows Multiple Admin Accounts
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, the LDAP and OAuth authentication flows use a TOCTOU (Time-of-Check-Time-of-Use) pattern for first-user admin role assignment. The regular signup handler (signup_handler in auths.py, line 663) was explicitly patched to prevent this race with the comment "Insert with default role first to avoid TOCTOU race", but the LDAP and OAuth code paths were never updated with the same fix. This vulnerability is fixed in 0.9.0.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-45675
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 08:15 UTC · Revision 1
Source evidence
Open WebUI: LDAP and OAuth First-User Race Condition Allows Multiple Admin Accounts
core-osv · Original sourcePublished 15 May 2026, 19:12 UTC
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, the LDAP and OAuth authentication flows use a TOCTOU (Time-of-Check-Time-of-Use) pattern for first-user admin role assignment. The regular signup handler (signup_handler in auths.py, line 663) was explicitly patched to prevent this race with the comment "Insert with default role first to avoid TOCTOU race", but the LDAP and OAuth code paths were never updated with the same fix. This vulnerability is fixed in 0.9.0.
osv:CVE-2026-45675
Complete source record
{
"id": "4502f93f2d5764d2c9739628f8697f1ae7f6810227e7c50a1d44e07e2359fa70",
"url": "https://osv.dev/vulnerability/CVE-2026-45675",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Open WebUI: LDAP and OAuth First-User Race Condition Allows Multiple Admin Accounts",
"summary": "Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, the LDAP and OAuth authentication flows use a TOCTOU (Time-of-Check-Time-of-Use) pattern for first-user admin role assignment. The regular signup handler (signup_handler in auths.py, line 663) was explicitly patched to prevent this race with the comment \"Insert with default role first to avoid TOCTOU race\", but the LDAP and OAuth code paths were never updated with the same fix. This vulnerability is fixed in 0.9.0.",
"evidence": "osv:CVE-2026-45675",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-45675",
"aliases": [
"CVE-2026-45675",
"GHSA-h3ww-q6xx-w7x3",
"PYSEC-2026-2730"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/open-webui/open-webui",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "f31768e20e5c6b4f6da0ef657877298b359936cf"
},
{
"fixed": "96a0b3239b1aadb23fc359bf10849c9ba12fd6ec"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:openwebui:open_webui:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "0.9.0"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "96a0b3239b1aadb23fc359bf10849c9ba12fd6ec"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"v0.8.12",
"v0.8.11",
"v0.8.10",
"v0.8.9",
"v0.8.8",
"v0.8.7",
"v0.8.6",
"v0.8.5",
"v0.8.4",
"v0.8.3",
"v0.8.2",
"v0.8.1",
"v0.8.0",
"v0.7.2",
"v0.7.1",
"v0.7.0",
"v0.6.43",
"v0.6.42",
"v0.6.41",
"v0.6.40",
"v0.6.39",
"v0.6.38",
"v0.6.37",
"v0.6.36",
"v0.6.34",
"v0.6.35",
"v0.6.33",
"v0.6.32",
"v0.6.31",
"v0.6.30",
"v0.6.29",
"v0.6.28",
"v0.6.27",
"v0.6.26",
"v0.6.25",
"v0.6.24",
"v0.6.23",
"v0.6.22",
"v0.6.21",
"v0.6.20",
"v0.6.19",
"v0.6.18",
"v0.6.17",
"v0.6.16",
"v0.6.15",
"v0.6.14",
"v0.6.13",
"v0.6.12",
"v0.6.11",
"v0.6.10",
"v0.6.9",
"v0.6.8",
"v0.6.7",
"v0.6.6",
"v0.6.5",
"v0.6.4",
"v0.6.3",
"v0.6.2",
"v0.6.1",
"v0.6.0",
"v0.5.16",
"v0.5.20",
"v0.5.19",
"v0.5.18",
"v0.5.17",
"v0.5.15",
"v0.5.14",
"v0.5.12",
"v0.5.13",
"v0.5.11",
"v0.5.10",
"v0.5.9",
"v0.5.8",
"v0.5.7",
"v0.5.6",
"v0.5.5",
"v0.5.4",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.4.8",
"v0.4.7",
"v0.4.6",
"v0.4.5",
"v0.4.4",
"v0.4.3",
"v0.4.2",
"v0.4.1",
"v0.4.0",
"v0.3.35",
"v0.3.34",
"v0.3.33",
"v0.3.32",
"v0.3.31",
"v0.3.30",
"v0.3.29",
"v0.3.28",
"v0.3.27",
"v0.3.26",
"v0.3.25",
"v0.3.24",
"v0.3.23",
"v0.3.22",
"v0.3.21",
"v0.3.20",
"v0.3.19",
"v0.3.18",
"v0.3.17",
"v0.3.16",
"v0.3.15",
"v0.3.14",
"v0.3.13",
"v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
"v0.3.8",
"v0.3.7",
"v0.3.6",
"v0.3.5",
"v0.3.4",
"v0.3.3",
"v0.3.2",
"v0.3.1",
"v0.3.0",
"v0.2.5",
"v0.2.4",
"v0.2.3",
"v0.2.2",
"v0.2.1",
"v0.2.0",
"v0.1.125",
"v0.1.124",
"v0.1.123",
"v0.1.122",
"v0.1.114",
"v0.1.121",
"v0.1.120",
"v0.1.119",
"v0.1.118",
"v0.1.117",
"v0.1.116",
"v0.1.115",
"v0.1.108",
"v0.1.113",
"v0.1.112",
"v0.1.111",
"v0.1.110",
"v0.1.109",
"v0.1.107",
"v0.1.106",
"v0.1.105",
"v0.1.104",
"v0.1.103",
"v0.1.102"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-45675.json"
}
}
],
"modified": "2026-10-28T02:30:27.458709939Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45675.json",
"https://github.com/open-webui/open-webui/security/advisories/GHSA-h3ww-q6xx-w7x3",
"https://nvd.nist.gov/vuln/detail/CVE-2026-45675",
"https://github.com/open-webui/open-webui/commit/96a0b3239b1aadb23fc359bf10849c9ba12fd6ec",
"https://github.com/open-webui/open-webui/pull/23626"
],
"provider_metadata": {
"cwe_ids": [
"CWE-269",
"CWE-362"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45675.json"
}
},
"related_cves": [
{
"value": "CVE-2026-45675",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 493704,
"published_at": "2026-05-15T19:12:57.665+00:00"
}