높음취약점
Open WebUI's Base Model Routing Bypasses Access Control via Model Chaining
GHSA-9vvh-qmjx-p4q8 · CVE-2026-44555 · PYSEC-2026-2719 · 갱신 2026. 7. 14.
영향 받는 패키지
| 생태계 | 패키지 | 수정 버전 |
|---|---|---|
| PyPI | open-webui | 0.9.0 |
GHSA-9vvh-qmjx-p4q8 · CVE-2026-44555 · PYSEC-2026-2719 · 갱신 2026. 7. 14.
| 생태계 | 패키지 | 수정 버전 |
|---|---|---|
| PyPI | open-webui | 0.9.0 |
gpt-4-turbo-restricted and configures access grants so only the "ML Engineers" group can use it.POST /api/v1/models/create
{
"id": "cheap-assistant",
"name": "Cheap Assistant",
"base_model_id": "gpt-4-turbo-restricted",
"params": {},
"meta": {}
}
The creation endpoint does not validate the attacker's access to gpt-4-turbo-restricted.cheap-assistant. check_model_access(attacker, cheap-assistant) passes trivially because they are the owner.POST /api/chat/completions
{"model": "cheap-assistant", "messages": [...]}
main.py:1696, the pipeline resolves cheap-assistant.base_model_id to gpt-4-turbo-restricted, rewrites payload["model"] to the base model ID, and dispatches the upstream request with the admin-configured API key for the backend.The same bypass is available via the import endpoint, which additionally allows overwriting existing models (see related finding on model import ownership).
gpt-4-turbo-restricted (or equivalent paid/tiered/internal models) becomes silently ineffectiveworkspace.models permission, granted to all users by default)