---
id: GHSA-hhww-mrg2-969h
title: LiteLLM vulnerable to reflected XSS in /sso/debug/callback
summary: LiteLLM vulnerable to reflected XSS in /sso/debug/callback
severity: medium
cvss: 6.8
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N'
vendor: litellm
product: litellm
ecosystem: pip
affected:
  - 'litellm >= 1.65.5, < 1.85.0'
patched:
  - litellm 1.85.0
published: '2026-10-27'
updated: '2026-10-27'
sourceUpdated: '2026-10-27T15:47:24.395753522Z'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-hhww-mrg2-969h'
references:
  - url: 'https://github.com/BerriAI/litellm/security/advisories/GHSA-hhww-mrg2-969h'
  - url: 'https://github.com/BerriAI/litellm/pull/27498'
  - url: >-
      https://github.com/BerriAI/litellm/commit/13a193367f0ae2e7e8b29913e0d23a32d3bb0457
  - url: 'https://github.com/BerriAI/litellm'
  - url: 'https://github.com/BerriAI/litellm/releases/tag/v1.85.0'
  - url: 'https://github.com/advisories/GHSA-hhww-mrg2-969h'
tags:
  - osv
  - pip
  - ghsa
cwe:
  - CWE-79
ingestedAt: '2026-10-27T16:11:58.716Z'
---

## Overview

### Summary

The `/sso/debug/callback` endpoint reflected identity-provider-controlled fields into an inline `<script>` block via `json.dumps`, which escapes JSON string syntax but not HTML context characters such as `</script>`. An IdP-returned string field containing `</script>` (for example a user-editable display name) closed the script block and executed attacker JavaScript in the proxy's origin.

### Impact

Reflected XSS on the LiteLLM proxy origin. The route required no authentication, so an attacker with an account on the configured IdP whose claims pass such strings through verbatim could complete the SSO flow themselves and deliver the resulting callback URL to a logged-in proxy admin. Scripts executing in the proxy origin can read the dashboard session cookie and act with the victim's privileges, up to full admin account takeover.

## Affected packages

- `litellm >= 1.65.5, < 1.85.0`

## Remediation

Upgrade to a patched release:

- `litellm 1.85.0`
