[PR #24811] [CLOSED] fix: enforce file ownership on chat-completion image_url file ids (IDOR) #131528

Closed
opened 2026-05-21 17:08:14 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/24811
Author: @Classic298
Created: 5/16/2026
Status: Closed

Base: devHead: fix/chat-image-url-file-id-idor


📝 Commits (1)

  • 4aead34 fix: enforce file ownership on chat-completion image_url file ids (IDOR)

📊 Changes

2 files changed (+13 additions, -4 deletions)

View changed files

📝 backend/open_webui/utils/files.py (+10 -1)
📝 backend/open_webui/utils/middleware.py (+3 -3)

📄 Description

get_image_base64_from_url resolved a user-supplied image_url string as a file id via Files.get_file_by_id with no ownership check, so any verified user could read another user's uploaded image by passing its UUID in a /api/chat/completions request. Thread the authenticated user through convert_url_images_to_base64 and apply the same owner/admin/has_access_to_file check the file routes already use.

Contributor License Agreement

Note

Deleting the CLA section will lead to immediate closure of your PR and it will not be merged in.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/open-webui/open-webui/pull/24811 **Author:** [@Classic298](https://github.com/Classic298) **Created:** 5/16/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `fix/chat-image-url-file-id-idor` --- ### 📝 Commits (1) - [`4aead34`](https://github.com/open-webui/open-webui/commit/4aead34e85057de2895f1745cbfda41c6b308b7f) fix: enforce file ownership on chat-completion image_url file ids (IDOR) ### 📊 Changes **2 files changed** (+13 additions, -4 deletions) <details> <summary>View changed files</summary> 📝 `backend/open_webui/utils/files.py` (+10 -1) 📝 `backend/open_webui/utils/middleware.py` (+3 -3) </details> ### 📄 Description get_image_base64_from_url resolved a user-supplied image_url string as a file id via Files.get_file_by_id with no ownership check, so any verified user could read another user's uploaded image by passing its UUID in a /api/chat/completions request. Thread the authenticated user through convert_url_images_to_base64 and apply the same owner/admin/has_access_to_file check the file routes already use. ### Contributor License Agreement <!-- 🚨 DO NOT DELETE THE TEXT BELOW 🚨 Keep the "Contributor License Agreement" confirmation text intact. Deleting it will trigger the CLA-Bot to INVALIDATE your PR. Your PR will NOT be reviewed or merged until you check the box below confirming that you have read and agree to the terms of the CLA. --> - [x] By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](https://github.com/open-webui/open-webui/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms. > [!NOTE] > Deleting the CLA section will lead to immediate closure of your PR and it will not be merged in. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-21 17:08:14 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#131528