Open WebUI: Unauthenticated requests can stall the server via uncached OIDC fetches in back-channel logout
## Summary The OIDC back-channel logout endpoint is unauthenticated by design, because the identity provider calls it without a browser session. Before checking whether the submitted logout token was genuine, the handler fetched the provider's discovery document and its signing keys over the network, and repeated both fetches on every request because nothing was cached. The signing-key fetch also ran as a blocking call inside the async event loop. A small number of requests carrying a worthless token was therefore enough to make the whole instance stop answering. ## Preconditions - `ENABLE_OAUTH_BACKCHANNEL_LOGOUT=true`. The default is `False`, so a stock deployment is not affected. This setting is recommended in the Open WebUI hardening documentation, which is why the issue is treated as in scope. - At least one OIDC provider configured (`OAUTH_CLIENT_ID`, `OAUTH_CLIENT_SECRET`, `OPENID_PROVIDER_URL`). - No account, credential, session or secret identifier is required. The attacker needs network access to the instance and the configured issuer string, which is published in the provider's own discovery document. ## Impact Against 0.11.0, with the identity provider answering in 150 ms, 60 concurrent requests carrying a token whose signature was four characters long stalled the async event loop for 8.3 seconds, measured against an idle baseline of 10.8 ms. For the length of that stall the process answers nothing: no chat requests, no API calls, no health check. Open WebUI runs
GHSA-3g9q-v48f-hh9w
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: osv:GHSA-3g9q-v48f-hh9w
open-webui
Source reference: /affected/0/package/name
- Affected versions
- 0.10.0
Source reference:
/affected/0/versions0.10.1Source reference:
/affected/0/versions0.10.2Source reference:
/affected/0/versions0.11.0Source reference:
/affected/0/versions0.9.0Source reference:
/affected/0/versions0.9.1Source reference:
/affected/0/versions0.9.2Source reference:
/affected/0/versions0.9.3Source reference:
/affected/0/versions0.9.4Source reference:
/affected/0/versions0.9.5Source reference:
/affected/0/versions0.9.6Source reference:
/affected/0/versions - Fixed versions
- 0.11.1
Source reference:
/affected/0/ranges - Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0.9.0"
},
{
"fixed": "0.11.1"
}
]
}
],
"package": {
"name": "open-webui",
"purl": "pkg:pypi/open-webui",
"ecosystem": "PyPI"
},
"versions": [
"0.10.0",
"0.10.1",
"0.10.2",
"0.11.0",
"0.9.0",
"0.9.1",
"0.9.2",
"0.9.3",
"0.9.4",
"0.9.5",
"0.9.6"
],
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-3g9q-v48f-hh9w/GHSA-3g9q-v48f-hh9w.json",
"last_known_affected_version_range": "<= 0.11.0"
}
}
]- Related CVEs
- CVE-2026-87011
Source reference:
/aliases
Publisher severity
high
Source reference: /database_specific/severity
- Event
- #62530 · Revision 1
- Added to Heist Feed
- Publisher date