← Back to scan
File as GitHub Issue repo: open-webui/open-webui

Push this scan report to open-webui/open-webui

Click the green button below to open GitHub’s new-issue form, pre-filled with the report title, summary table, top findings, and an embedded score-card image. No authentication needed — you review on GitHub before submitting. Repobility is credited as the scanner.

Embedded score card image

This image will render at the top of the issue body. Hosted on Repobility, refreshes automatically after re-scans.

Repobility score card

Issue title

`self._current_bucket` used but never assigned in __init__

Curate findings to include

Pick exactly which findings appear in the issue body. By default the top 5 are included. Uncheck noise, check what matters.

Top 5 (default)
Severity Rule Title File:line
HIGH MINED110 [MINED110] Blocking call `time.sleep` inside async function `_inner`: `time.sleep` is a s… backend/open_webui/utils/redis.py:188
HIGH MINED108 [MINED108] `self._current_bucket` used but never assigned in __init__: Method `_get_count… backend/open_webui/utils/rate_limit.py:124
HIGH MINED108 [MINED108] `self._current_bucket` used but never assigned in __init__: Method `_is_limite… backend/open_webui/utils/rate_limit.py:102
HIGH MINED108 [MINED108] `self._bucket_key` used but never assigned in __init__: Method `_get_count_red… backend/open_webui/utils/rate_limit.py:97
HIGH MINED108 [MINED108] `self._current_bucket` used but never assigned in __init__: Method `_get_count… backend/open_webui/utils/rate_limit.py:96
HIGH MINED108 [MINED108] `self._bucket_key` used but never assigned in __init__: Method `_is_limited_re… backend/open_webui/utils/rate_limit.py:88
HIGH MINED108 [MINED108] `self._bucket_key` used but never assigned in __init__: Method `_is_limited_re… backend/open_webui/utils/rate_limit.py:81
HIGH MINED108 [MINED108] `self._current_bucket` used but never assigned in __init__: Method `_is_limite… backend/open_webui/utils/rate_limit.py:80
HIGH MINED108 [MINED108] `self.get_count` used but never assigned in __init__: Method `remaining` of cl… backend/open_webui/utils/rate_limit.py:76
HIGH MINED108 [MINED108] `self._get_count_memory` used but never assigned in __init__: Method `get_coun… backend/open_webui/utils/rate_limit.py:71
HIGH MINED108 [MINED108] `self._get_count_redis` used but never assigned in __init__: Method `get_count… backend/open_webui/utils/rate_limit.py:69
HIGH MINED108 [MINED108] `self._get_count_memory` used but never assigned in __init__: Method `get_coun… backend/open_webui/utils/rate_limit.py:73
HIGH MINED108 [MINED108] `self._redis_available` used but never assigned in __init__: Method `get_count… backend/open_webui/utils/rate_limit.py:67
HIGH MINED108 [MINED108] `self._is_limited_memory` used but never assigned in __init__: Method `is_limi… backend/open_webui/utils/rate_limit.py:59
HIGH MINED108 [MINED108] `self._is_limited_redis` used but never assigned in __init__: Method `is_limit… backend/open_webui/utils/rate_limit.py:57
HIGH MINED108 [MINED108] `self._is_limited_memory` used but never assigned in __init__: Method `is_limi… backend/open_webui/utils/rate_limit.py:61
HIGH MINED108 [MINED108] `self._redis_available` used but never assigned in __init__: Method `is_limite… backend/open_webui/utils/rate_limit.py:55
HIGH MINED108 [MINED108] `self.clear_document` used but never assigned in __init__: Method `remove_user… backend/open_webui/socket/utils.py:291
HIGH MINED108 [MINED108] `self.get_users` used but never assigned in __init__: Method `remove_user_from… backend/open_webui/socket/utils.py:278
HIGH MINED108 [MINED108] `self.clear_document` used but never assigned in __init__: Method `remove_user… backend/open_webui/socket/utils.py:279
HIGH MINED108 [MINED108] `self._compact_updates_redis` used but never assigned in __init__: Method `app… backend/open_webui/socket/utils.py:172
HIGH MINED108 [MINED108] `self._compact_updates_memory` used but never assigned in __init__: Method `ap… backend/open_webui/socket/utils.py:178
HIGH MINED108 [MINED108] `self._extract_s3_key` used but never assigned in __init__: Method `delete_fil… backend/open_webui/storage/provider.py:175
HIGH MINED108 [MINED108] `self._get_local_file_path` used but never assigned in __init__: Method `get_f… backend/open_webui/storage/provider.py:166
HIGH MINED108 [MINED108] `self._extract_s3_key` used but never assigned in __init__: Method `get_file` … backend/open_webui/storage/provider.py:165
HIGH MINED108 [MINED108] `self.sanitize_tag_value` used but never assigned in __init__: Method `upload_… backend/open_webui/storage/provider.py:148
HIGH MINED014 [MINED014] Disabled Tls Verify: verify=False in requests, rejectUnauthorized:false in nod… backend/open_webui/utils/mcp/client.py:28
HIGH MINED006 [MINED006] Overcatch Baseexception: except BaseException: ... — prevents Ctrl+C and Syste… backend/open_webui/utils/asgi_middlewar…:99
HIGH SEC135 [SEC135] Auth/permission check missing on AI-generated endpoint: Mutating HTTP endpoint g… backend/open_webui/routers/groups.py:59
HIGH SEC135 [SEC135] Auth/permission check missing on AI-generated endpoint: Mutating HTTP endpoint g… backend/open_webui/routers/folders.py:88
HIGH SEC135 [SEC135] Auth/permission check missing on AI-generated endpoint: Mutating HTTP endpoint g… backend/open_webui/routers/automations.…:156
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … backend/open_webui/utils/code_interpret…:99
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … backend/open_webui/socket/utils.py:50
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … backend/open_webui/retrieval/vector/dbs…:177
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… backend/open_webui/retrieval/web/main.py:32
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… backend/open_webui/retrieval/web/firecr…:68
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… backend/open_webui/retrieval/loaders/ex…:45
HIGH DKR006 Dockerfile pipes a remote script into a shell Dockerfile:168
HIGH MINED115 [MINED115] Action `actions/setup-python` pinned to mutable ref `@v6`: `uses: actions/setu… .github/workflows/backend.yaml:31
HIGH MINED115 [MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout… .github/workflows/backend.yaml:30
HIGH MINED115 [MINED115] Action `actions/download-artifact` pinned to mutable ref `@v5`: `uses: actions… .github/workflows/docker.yaml:173
HIGH MINED115 [MINED115] Action `actions/upload-artifact` pinned to mutable ref `@v4`: `uses: actions/u… .github/workflows/docker.yaml:136
HIGH MINED115 [MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout… .github/workflows/docker.yaml:70
HIGH MINED115 [MINED115] Action `pypa/gh-action-pypi-publish` pinned to mutable ref `@release/v1`: `use… .github/workflows/release-pypi.yml:36
HIGH MINED115 [MINED115] Action `actions/setup-python` pinned to mutable ref `@v6`: `uses: actions/setu… .github/workflows/release-pypi.yml:27
HIGH MINED115 [MINED115] Action `actions/setup-node` pinned to mutable ref `@v5`: `uses: actions/setup-… .github/workflows/release-pypi.yml:24
HIGH MINED115 [MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout… .github/workflows/release-pypi.yml:19
HIGH MINED115 [MINED115] Action `actions/github-script` pinned to mutable ref `@v8`: `uses: actions/git… .github/workflows/release.yml:66
HIGH MINED115 [MINED115] Action `actions/upload-artifact` pinned to mutable ref `@v4`: `uses: actions/u… .github/workflows/release.yml:56
HIGH MINED115 [MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout… .github/workflows/release.yml:24
HIGH MINED115 [MINED115] Action `actions/setup-node` pinned to mutable ref `@v5`: `uses: actions/setup-… .github/workflows/frontend.yaml:54
HIGH MINED115 [MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout… .github/workflows/frontend.yaml:53
HIGH MINED115 [MINED115] Action `actions/setup-node` pinned to mutable ref `@v5`: `uses: actions/setup-… .github/workflows/frontend.yaml:27
HIGH MINED115 [MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout… .github/workflows/frontend.yaml:26
HIGH MINED131 [MINED131] pre-commit hook `https://github.com/astral-sh/ruff-pre-commit` pinned to mutab… .pre-commit-config.yaml:2
HIGH MINED118 [MINED118] Dockerfile FROM `python:3.11-slim-bookworm` not pinned by digest: `FROM python… Dockerfile:46
HIGH JRN004 Consent is collected in UI without visible backend audit persistence src/lib/components/admin/Users/Groups/P…:389
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… backend/open_webui/routers/users.py:481
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… backend/open_webui/routers/chats.py:515
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… backend/open_webui/routers/memories.py:282
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… backend/open_webui/routers/knowledge.py:625
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… backend/open_webui/routers/knowledge.py:438
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… backend/open_webui/routers/pipelines.py:492
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… backend/open_webui/routers/pipelines.py:451
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… backend/open_webui/routers/pipelines.py:410
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… backend/open_webui/main.py:2313
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… backend/open_webui/main.py:2296
MED MINED109 [MINED109] Mutable default argument in `has_permission` (dict): `def has_permission(... =… backend/open_webui/utils/access_control…:70
MED MINED109 [MINED109] Mutable default argument in `search_notes` (dict): `def search_notes(... = []/… backend/open_webui/models/notes.py:160
MED MINED109 [MINED109] Mutable default argument in `get_feedback_items` (dict): `def get_feedback_ite… backend/open_webui/models/feedbacks.py:210
MED MINED109 [MINED109] Mutable default argument in `search_models` (dict): `def search_models(... = [… backend/open_webui/models/models.py:275
MED MINED109 [MINED109] Mutable default argument in `search_prompts` (dict): `def search_prompts(... =… backend/open_webui/models/prompts.py:291
MED MINED109 [MINED109] Mutable default argument in `search_skills` (dict): `def search_skills(... = [… backend/open_webui/models/skills.py:220
MED MINED109 [MINED109] Mutable default argument in `__init__` (list): `def __init__(... = []/{}/set()… backend/open_webui/socket/utils.py:54
MED MINED109 [MINED109] Mutable default argument in `__init__` (list): `def __init__(... = []/{}/set()… backend/open_webui/socket/utils.py:19
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/env.py:421
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/env.py:353
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/env.py:141
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/env.py:55
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:717
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:909
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:899
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:889
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:879
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:866
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:856
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:846
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:832
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:822
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:812
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:802
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:703
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:693
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:683
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:673
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:1563
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/config.py:468
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… backend/open_webui/__init__.py:60
MED MINED109 [MINED109] Mutable default argument in `generate_function_chat_completion` (dict): `def g… backend/open_webui/functions.py:147
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… contribution_stats.py:59
MED MINED111 [MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that r… contribution_stats.py:16
MED SEC014 [SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing ma… backend/open_webui/utils/mcp/client.py:28
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… backend/open_webui/utils/filter.py:29
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… backend/open_webui/retrieval/web/main.py:32
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… backend/open_webui/retrieval/loaders/ex…:45
MED SEC136 [SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all excepti… backend/open_webui/models/tools.py:148
MED SEC136 [SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all excepti… backend/open_webui/models/tags.py:75
MED SEC136 [SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all excepti… backend/open_webui/models/memories.py:68
MED COMP001 [COMP001] High cognitive complexity: Function `get_by_user_id` has cognitive complexity 1… backend/open_webui/models/shared_chats.…:133
MED AUC001 [AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks…
MED MINED124 [MINED124] requirements.txt: `beautifulsoup4` has no version pin: Unpinned pip requiremen… backend/requirements-min.txt:59
MED MINED124 [MINED124] requirements.txt: `pydub` has no version pin: Unpinned pip requirement means e… backend/requirements-min.txt:57
MED MINED124 [MINED124] requirements.txt: `openai` has no version pin: Unpinned pip requirement means … backend/requirements-min.txt:46
MED MINED124 [MINED124] requirements.txt: `redis` has no version pin: Unpinned pip requirement means e… backend/requirements-min.txt:37
MED MINED124 [MINED124] requirements.txt: `aiofiles` has no version pin: Unpinned pip requirement mean… backend/requirements-min.txt:22
MED MINED124 [MINED124] requirements.txt: `aiocache` has no version pin: Unpinned pip requirement mean… backend/requirements-min.txt:21
MED MINED124 [MINED124] requirements.txt: `async-timeout` has no version pin: Unpinned pip requirement… backend/requirements-min.txt:20
MED MINED124 [MINED124] requirements.txt: `cryptography` has no version pin: Unpinned pip requirement … backend/requirements-min.txt:12
MED WEB004 robots.txt blocks the full public site static/robots.txt
MED JRN002 Browser storage is used for session token material src/routes/+layout.svelte:190
MED JRN002 Browser storage is used for session token material src/lib/components/chat/XTerminal.svelte:55
MED AGT007 localStorage write failures are swallowed silently src/lib/components/layout/Sidebar.svelte:496
MED WEB003 Public web service has no security.txt .well-known/security.txt
MED DKR014 Dockerfile copies broad context with incomplete .dockerignore Dockerfile:41
MED JRN003 Frontend API reference is not matched by discovered backend routes src/lib/components/workspace/Prompts/Pr…:659
MED JRN003 Frontend API reference is not matched by discovered backend routes src/lib/components/chat/FileNav/FilePre…:111
MED AUC012 [AUC012] FastAPI interactive docs may be exposed by framework defaults: FastAPI exposes /…
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … backend/open_webui/routers/calendar.py:316
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … backend/open_webui/routers/calendar.py:293
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … backend/open_webui/routers/calendar.py:281
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … backend/open_webui/routers/calendar.py:269
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … backend/open_webui/routers/calendar.py:262
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … backend/open_webui/routers/calendar.py:85
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … backend/open_webui/routers/openai.py:570
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … backend/open_webui/routers/openai.py:569
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … backend/open_webui/main.py:2568
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … backend/open_webui/main.py:2367
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… backend/open_webui/main.py:2746
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… backend/open_webui/main.py:2560
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… backend/open_webui/main.py:2553
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… backend/open_webui/main.py:2546
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… backend/open_webui/main.py:2345
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… backend/open_webui/main.py:2327
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… backend/open_webui/main.py:2322
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… backend/open_webui/main.py:2313
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… backend/open_webui/main.py:1538
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… backend/open_webui/main.py:1528
LOW SEC132 [SEC132] String concat where the language has interpolation (AI style drift): String buil… backend/open_webui/utils/logger.py:44
LOW SEC132 [SEC132] String concat where the language has interpolation (AI style drift): String buil… backend/open_webui/retrieval/vector/dbs…:162
LOW SEC132 [SEC132] String concat where the language has interpolation (AI style drift): String buil… backend/open_webui/constants.py:21
LOW COMP001 [COMP001] High cognitive complexity: Function `__getattr__` has cognitive complexity 9 (S… backend/open_webui/internal/config.py:236
LOW AIC003 Duplicated implementation block across source files src/lib/apis/functions/index.ts:94
LOW AIC003 Duplicated implementation block across source files src/lib/apis/functions/index.ts:32
LOW AIC003 Duplicated implementation block across source files src/lib/apis/functions/index.ts:14
LOW AIC003 Duplicated implementation block across source files src/lib/apis/functions/index.ts:13
LOW AIC003 Duplicated implementation block across source files src/lib/apis/folders/index.ts:35
LOW AIC003 Duplicated implementation block across source files src/lib/apis/folders/index.ts:18
LOW AIC003 Duplicated implementation block across source files src/lib/apis/files/index.ts:164
LOW AIC003 Duplicated implementation block across source files src/lib/apis/files/index.ts:128
LOW AIC003 Duplicated implementation block across source files src/lib/apis/files/index.ts:21
LOW AIC003 Duplicated implementation block across source files src/lib/apis/evaluations/index.ts:295
LOW AIC003 Duplicated implementation block across source files src/lib/apis/evaluations/index.ts:41
LOW AIC003 Duplicated implementation block across source files src/lib/apis/evaluations/index.ts:5
LOW AIC003 Duplicated implementation block across source files src/lib/apis/configs/index.ts:13
LOW AIC003 Duplicated implementation block across source files src/lib/apis/channels/index.ts:338
LOW AIC003 Duplicated implementation block across source files src/lib/apis/channels/index.ts:152
LOW AIC003 Duplicated implementation block across source files src/lib/apis/channels/index.ts:146
LOW AIC003 Duplicated implementation block across source files src/lib/apis/calendar/index.ts:92
LOW AIC003 Duplicated implementation block across source files src/lib/apis/calendar/index.ts:68
LOW AIC003 Duplicated implementation block across source files src/lib/apis/automations/index.ts:63
LOW AIC003 Duplicated implementation block across source files src/lib/apis/auths/index.ts:5
LOW AIC003 Duplicated implementation block across source files src/lib/apis/audio/index.ts:71
LOW AIC003 Duplicated implementation block across source files backend/open_webui/routers/users.py:535
LOW AIC003 Duplicated implementation block across source files backend/open_webui/routers/users.py:88
LOW AIC003 Duplicated implementation block across source files backend/open_webui/routers/tools.py:328
LOW AIC003 Duplicated implementation block across source files backend/open_webui/routers/tools.py:176
LOW AIC003 Duplicated implementation block across source files backend/open_webui/routers/prompts.py:48
LOW AIC003 Duplicated implementation block across source files backend/open_webui/retrieval/vector/dbs…:8
LOW AIC003 Duplicated implementation block across source files backend/open_webui/retrieval/vector/dbs…:29
LOW AIC003 Duplicated implementation block across source files backend/open_webui/retrieval/vector/dbs…:32
LOW AIC003 Duplicated implementation block across source files backend/open_webui/retrieval/vector/dbs…:10
LOW AUC005 [AUC005] No authorization-focused tests detected: No test files with common authorization…
LOW WEB005 robots.txt does not advertise a sitemap static/robots.txt
LOW WEB002 Public web app has no sitemap sitemap.xml
LOW DKR008 .dockerignore misses sensitive defaults .dockerignore
LOW WEB008 Public docs site has no llms.txt llms.txt
LOW DKC010 Compose service lacks no-new-privileges hardening docker-compose.yaml:10
LOW AIC002 Source file name looks like an AI patch artifact src/lib/utils/_template_old.ts:1
LOW WEB011 Public web app has no humans.txt humans.txt
INFO MINED044 [MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger … scripts/prepare-pyodide.js:53
INFO MINED043 [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr… backend/open_webui/utils/webhook.py:45
INFO MINED043 [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr… backend/open_webui/utils/validate.py:38
INFO MINED043 [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr… backend/open_webui/utils/images/comfyui…:190
INFO MINED067 [MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang f… backend/open_webui/retrieval/loaders/ex…:30
INFO MINED067 [MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang f… backend/open_webui/retrieval/loaders/ex…:56
INFO MINED067 [MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang f… backend/open_webui/retrieval/loaders/da…:71
INFO MINED072 [MINED072] Python Pass Only Class: class Foo: pass — stub waiting to be filled in. backend/open_webui/models/auths.py:50
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… backend/open_webui/retrieval/loaders/ex…:46
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… backend/open_webui/models/auths.py:51
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… backend/open_webui/__init__.py:28
Reset to top 5 200 findings available (after auto-suppression of test files + won't-fix)

Issue body (markdown)

## Code-quality scan: `open-webui/open-webui`

**Score: 77/100 (B-)**  ·  223 findings  ·  scanned 2026-06-05 04:50 UTC  ·  225,000 LOC

| Severity | Count |
|---|---|
| CRITICAL | 15 |
| HIGH | 75 |
| MEDIUM | 80 |
| LOW | 42 |

📊 [Full filterable report](https://repobility.com/scan/eece5801-31e4-4d8a-b69e-8e16dd5dfc24/)  ·  ![scorecard](https://repobility.com/scan/eece5801-31e4-4d8a-b69e-8e16dd5dfc24/report.png?v=1780635015-s2)

### Top findings

1. **HIGH** `MINED110` — Blocking call `time.sleep` inside async function `_inner`
   `backend/open_webui/utils/redis.py:188` · ✓ Repobility
2. **HIGH** `MINED108` — `self._current_bucket` used but never assigned in __init__
   `backend/open_webui/utils/rate_limit.py:124` · ✓ Repobility
3. **HIGH** `MINED108` — `self._current_bucket` used but never assigned in __init__
   `backend/open_webui/utils/rate_limit.py:102` · ✓ Repobility
4. **HIGH** `MINED108` — `self._bucket_key` used but never assigned in __init__
   `backend/open_webui/utils/rate_limit.py:97` · ✓ Repobility
5. **HIGH** `MINED108` — `self._current_bucket` used but never assigned in __init__
   `backend/open_webui/utils/rate_limit.py:96` · ✓ Repobility

---

_Filed automatically. Close this issue if not useful — we won't refile. Full report: https://repobility.com/scan/eece5801-31e4-4d8a-b69e-8e16dd5dfc24/_
Megaproject â high spam risk
Could not determine 'open-webui/open-webui' star count (GitHub API rate-limited or unreachable). When in doubt about repo size, prefer opening a focused PR or a discussion rather than an issue.

The button opens GitHubâs new-issue page in a new tab. You will see the title + body pre-filled â review, edit if you want, then click GitHubâs "Submit new issue" button. Repobility never posts anything on your behalf.

For real security findings on big repos: use the project's SECURITY.md or private advisory flow instead of a public issue.