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. Learn more about Dependency Scanning →