CVE-2026-59213: Open WebUI: Cross-user model-list exposure via static cache key in get_all_models (aiocache key= vs key_builder= misuse)
The get_all_models handlers in routers/openai.py and routers/ollama.py intended to cache their permission-filtered model lists per user, but the @cached decorator was misconfigured: it passed a key= lambda instead of key_builder=. In aiocache 0.12.3 (the pinned version), key= is a static cache key — a callable passed there is used as a constant object, not invoked per call. As a result the per-user key was never computed, and all callers collided onto a single shared cache entry within the TTL window. During that window, one user’s permission-filtered model list could be served to a different authenticated user, crossing the per-user authorization boundary.
References
- github.com/advisories/GHSA-3wp3-xxj9-5jqq
- github.com/open-webui/open-webui/commit/0fc630b34b2899599dabffffa012afd47599aa75
- github.com/open-webui/open-webui/pull/25783
- github.com/open-webui/open-webui/releases/tag/v0.10.0
- github.com/open-webui/open-webui/security/advisories/GHSA-3wp3-xxj9-5jqq
- nvd.nist.gov/vuln/detail/CVE-2026-59213
Code Behaviors & Features
Detect and mitigate CVE-2026-59213 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →