{"schema_version":"1.9.0","id":"GHSA-3wgj-c2hg-vm6q","published":"2026-05-14T20:27:28Z","modified":"2026-07-16T03:56:45.437973308Z","aliases":["CVE-2026-56398"],"summary":"Open WebUI vulnerable to stored XSS via OAuth picture claim stored as SVG data URI in profile_image_url","details":"# Summary\n\nWhen a user signs in via OAuth, Open WebUI fetches the `picture` claim URL, infers a MIME type from the URL extension via `mimetypes.guess_type`, and stores `data:;base64,...` as the user's profile image. The OAuth code path does not go through the `validate_profile_image_url` Pydantic validator that normally restricts profile images to PNG/JPEG/GIF/WebP. A `.svg` URL in the `picture` claim lands in the database as `data:image/svg+xml;base64,...`.\n\nThe profile image endpoint `GET /api/v1/users/{id}/profile/image` returns the stored data URI with the attacker-controlled MIME type as `Content-Type` and `Content-Disposition: inline`. Security headers (CSP, `X-Content-Type-Options`) are env-gated and not set by default. An authenticated user navigating directly to that URL gets the SVG as a top-level document, executing `