CVE-2026-87016: Open WebUI: Sign-in as another user via wildcard characters in the OAuth subject claim on SQLite
On SQLite deployments, the lookup that maps an external identity to a local account does a substring match instead of an exact match.
What it is
On SQLite deployments, the lookup that maps an external identity to a local account does a substring match instead of an exact match. A subject value containing SQL wildcard characters therefore matches accounts the value was never issued for, and the sign-in binds to whichever account the database returns first, which can be an administrator. The same defect affects SCIM external-ID resolution. PostgreSQL deployments are not affected, because they take a separate and correct code path.
* The database is SQLite. This is the default backend. PostgreSQL deployments are not affected at all. * OAuth or OIDC sign-in is configured, or SCIM provisioning is enabled. Both are off by default. * For an attacker to steer the match deliberately, they must control the value of the claim Open WebUI uses as the subject. That value is normally assigned by the identity provider and is not attacker-controlled: the shipped GitHub and Feishu configurations use provider-assigned numeric identifiers, and a standard OIDC sub is provider-assigned.
How to check
- Affected: open-webui (pip) >= 0.6.41, < 0.11.1.
- Compare your installed version with the range above (command below).
How to fix
- Upgrade open-webui to 0.11.1 or later.
pip show open-webui | grep VersionSources
- highCVE-2026-87995: Open WebUI: Same-origin XSS to account takeover via terminal port-preview iframe hardcoding allow-same-origin
- highCVE-2026-70492: Open WebUI: Stored XSS via unescaped KaTeX render-error fallback in rendered messages
- highCVE-2026-45672: Open WebUI: Jupyter code execution works despite `ENABLE_CODE_EXECUTION=false` — feature gate bypassed