open-webui/backend/open_webui/routers
Classic298 55a6198e26
Gate the model profile image endpoint on model read access (#29700)
Any authenticated user could fetch the profile image of a model they have no access to, and could tell an existing model id from an unknown one by whether the response carried the image or the default logo.

The endpoint now serves an image only to callers who can see the model itself: the owner, an admin under the admin bypass, or the holder of a read grant, with the same rule applied to arena models defined in config. Everyone else gets the default logo, byte for byte the response an unknown id already returned, so ids can no longer be probed. BYPASS_MODEL_ACCESS_CONTROL is honoured here because it is what decides which models reach a user's model list to begin with.

Avatars now fall back to the default logo wherever a viewer meets a model id without holding a grant on it: a model reply in a channel shown to the other members, and the admin analytics and evaluation pages when the admin bypass is switched off.
2026-09-06 16:20:13 -04:00
..
analytics.py refac 2026-06-29 01:38:41 -05:00
audio.py perf: build info log messages lazily so raising the log level actually saves work (#27837) 2026-08-02 15:39:10 -05:00
auths.py refac 2026-09-04 19:12:41 -04:00
automations.py refac 2026-08-13 17:26:38 -06:00
calendar.py refac 2026-06-29 13:03:14 -05:00
channels.py perf: bounded non-blocking session pool reaper, fewer blocking pool round trips (#28835) 2026-08-31 01:17:53 -04:00
chats.py refac 2026-08-25 13:18:38 -04:00
configs.py refac 2026-09-04 17:39:34 -04:00
evaluations.py Fix: mps inference evaluations (#29735) 2026-09-06 15:20:41 -04:00
files.py fix: don't hold a database connection for the lifetime of an SSE stream (#28183) 2026-08-17 01:46:54 -06:00
folders.py fix: keep folder parent references acyclic (#28748) 2026-08-24 17:06:19 -04:00
functions.py refac 2026-08-17 01:21:58 -07:00
groups.py refac 2026-06-29 05:47:21 -05:00
images.py refac 2026-08-31 10:47:49 -04:00
knowledge.py refac 2026-08-31 00:39:16 -04:00
memories.py refac 2026-08-11 17:35:05 -06:00
models.py Gate the model profile image endpoint on model read access (#29700) 2026-09-06 16:20:13 -04:00
notes.py refac 2026-08-25 13:18:38 -04:00
notifications.py refac 2026-07-27 19:39:36 -04:00
ollama.py refac 2026-08-31 00:53:55 -04:00
openai.py refac 2026-08-31 00:53:55 -04:00
pipelines.py perf: skip pipeline filter session setup when no filters exist (#29146) 2026-08-28 12:22:23 -04:00
prompts.py refac 2026-08-31 00:39:16 -04:00
retrieval.py refac 2026-09-03 15:31:07 -04:00
scim.py refac 2026-08-23 13:49:50 -04:00
skills.py perf: stop scanning every skill on each listing and chat turn (#28798) 2026-08-19 11:07:33 -07:00
tasks.py refac 2026-08-11 01:15:05 -06:00
terminals.py refac 2026-09-04 22:56:00 -04:00
tools.py chore: format 2026-08-25 16:53:53 -04:00
users.py refac: drop the redundant .keys() from two dict membership tests (#28859) 2026-08-23 16:02:09 -04:00
utils.py refac 2026-06-17 02:52:35 +02:00