CVE-2026-34225: Open WebUI has Blind Server Side Request Forgery in its Image Edit Functionality
Open WebUI's image edit endpoint fetches any HTTP or HTTPS URL a logged-in user supplies, with no restriction on internal addresses. The SSRF is blind, so an attacker can port-scan the internal network but cannot read responses. The data lists no patched version, but the vendor advisory page now names 0.9.5.
Published Jul 7, 2026 · Analysis Oct 25, 2026
What an attacker can do
POST /api/v1/images/edit takes an image field in form_data. In backend/open_webui/routers/images.py, the function load_url_image trusts any HTTP or HTTPS URL and requests it with requests.get. Nothing blocks loopback, private ranges or cloud metadata addresses.
The response is never returned, so the attacker learns only whether the request succeeded or failed. By comparing those results across ports and hosts, a user with any valid account can map open ports on the server's network. The advisory notes a second step: if an open service exposes state-changing GET endpoints, the attacker may be able to trigger them.
The attacker needs a valid token and network access to Open WebUI. The CVSS score is 4.3, low confidentiality impact. It matters most when Open WebUI runs inside a private network next to internal admin panels, databases with HTTP interfaces or model servers.
Who is affected
The package data lists open-webui 0.7.2 and earlier as vulnerable. The vendor advisory page lists >= 0.6.35 and < 0.9.5 as affected, so use the vendor range. The code path is the image edit feature, reached at /api/v1/images/edit.
pip show open-webuiFor Docker, read the version from the About page or the image tag.
open-webui
- Ecosystem
- PyPI
- Affected
- <= 0.7.2
- Fixed in
- No patched version yet
- Check
pip show open-webui
How to fix it
The package data records no patched version. The vendor advisory page, read on 2026-10-25, lists 0.9.5 as the patched release. Upgrade to 0.9.5 or later.
pip install -U open-webuiThe advisory gives no workaround. Its remediation direction is to block user-supplied URLs that point into local address space. You can approximate that today with egress rules on the host or container that deny traffic to private ranges and metadata addresses, except to services Open WebUI needs.
How to tell if you were hit
Search web server or reverse proxy logs for many POST /api/v1/images/edit calls from a single account in a short time, each with a different internal URL or port in the image field. Check outbound connections from the Open WebUI host to internal addresses and ports it does not normally use, such as sequential port probes. A burst of failed connections to private ranges that matches those requests is the pattern in the proof of concept.
Original advisory
From the GitHub Advisory Database (CC BY 4.0).
Summary
There is a blind server side request forgery in the functionality that allows editing an image via a prompt. The affected function will perform a GET request on the URL provided by the user. There is no restriction on the domain of the provided URL allowing the local address space to be interacted with. Since the SSRF is blind (the response cannot be read) impact is port scanning of the local network because it can be confirmed if the port is open based on if the GET request failed.
Details
The vulnerability occurs here: https://github.com/open-webui/open-webui/blob/2b26355002064228e9b671339f8f3fb9d1fafa73/backend/open_webui/routers/images.py#L850-L916 Line 911 shows the user provided URL passed to the function load_url_image. Within this function on line 883 HTTP/HTTPs URLs are trusted blindly and called asynchronously with requests.get.
PoC
The vulnerability can be reproduced with the following curl command:
curl -X POST http://localhost:3000/api/v1/images/edit \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"form_data":{
"image": "<url>",
"prompt": "poc"}
}'Impact
Response differentials can be used to port scan the local network:
This can be automated to iterate through the entire port range to determine open ports. If the service running on an open port can be inferred the user may be able to interact with it in a meaningful way if the service offers any state changing GET request endpoints.
Remediation
Restrict provided URLs from local address space.
Credited to gg0h, Classic298.
Questions
- Can this SSRF read internal data?
No. The advisory calls it blind. The response cannot be read, so the impact is port scanning, plus triggering state-changing GET endpoints on services found.
- Is there a patched version of Open WebUI for CVE-2026-34225?
The package data shows none, but the vendor advisory page lists 0.9.5 as patched, with affected versions from 0.6.35 up to before 0.9.5. Check the release notes before relying on it.
- Does the attacker need an account?
Yes. The proof of concept sends a bearer token, and the CVSS vector sets privileges to low.
References
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology
More Open WebUI vulnerabilities
All Open WebUI entriesCVE-2026-87011
Open WebUI: Unauthenticated requests can stall the server via uncached OIDC fetches in back-channel logout
high7.5Sep 10, 2026CVE-2026-87012
Open WebUI: Any authenticated user can suppress calendar alerts instance-wide via a non-numeric alert value
medium4.3Sep 10, 2026CVE-2026-87013
Open WebUI: Any authenticated user can start a non-terminating request via a folder parent cycle
medium4.3Sep 10, 2026CVE-2026-87014
Open WebUI: Admin demoted through SSO role sync keeps read and write access to all users' notes
medium6.5Sep 10, 2026CVE-2026-87015
Open WebUI: A user's session cookies are sent to tool servers configured for bearer authentication
medium6.8Sep 10, 2026CVE-2026-87016
Open WebUI: Sign-in as another user via wildcard characters in the OAuth subject claim on SQLite
high8.1Sep 10, 2026
