Skip to content

GHSA-26jh-r8g2-6fpr

Gradio's dropdown component pre-process step does not limit the values to those in the dropdown list

Medium PyPI
Severity
0.0 / 10
Medium · CVSS 4.0
Exploit chance (EPSS)
—
No score published
Known exploited
No
Not in CISA's catalog
Weakness
—
Not classified
Fix
5.0.0
Upgrade gradio to this version or later

Description

Impact

What kind of vulnerability is it? Who is impacted?

This vulnerability is a data validation issue in the Gradio Dropdown component's pre-processing step. Even if the allow_custom_value parameter is set to False, attackers can bypass this restriction by sending custom requests with arbitrary values, effectively breaking the developer’s intended input constraints. While this alone is not a severe vulnerability, it can lead to more critical security issues, particularly when paired with other vulnerabilities like file downloads from the user's machine.

Patches

Yes, this issue is addressed in gradio>=5.0. Please upgrade to the latest version to resolve the problem.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

To mitigate the issue without upgrading, developers can add manual validation in their prediction function to check the received values against the allowed dropdown values before processing them.

Affected versions

PyPI

PackageVulnerableFixed in
gradio
< 5.0.0
5.0.0

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

gradio PyPI → 5.0.0

pip
pip install --upgrade "gradio>=5.0.0"
poetry
poetry add "gradio>=5.0.0"
uv
uv add "gradio>=5.0.0"

Severity breakdown

CVSS 4.0 0.0

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U

Attack vector
Network
Attack complexity
Low
Attack requirements
None
Privileges required
None
User interaction
None
Confidentiality (vulnerable system)
None
Integrity (vulnerable system)
Low
Availability (vulnerable system)
None
Confidentiality (subsequent systems)
None
Integrity (subsequent systems)
None
Availability (subsequent systems)
None
Exploit maturity
Unreported

CVSS 3.1 5.3

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

References

Timeline

  1. Published
  2. Last updated by the source
AdvisorySeverityWhy it's related
GHSA-j36p-7w88-g82j
Gradio FileExplorer preprocess path traversal allows files outside root_dir to reach callbacks
High Also affects gradio
GHSA-6655-8ph2-63j3
Gradio: Audio cache key ignores metadata when saving numpy audio outputs
Low Also affects gradio
GHSA-7hp7-4p35-3cx2
Gradio contains a cookie injection vulnerability
Medium Also affects gradio
GHSA-jmh7-g254-2cq9
Gradio has SSRF via Malicious `proxy_url` Injection in `gr.load()` Config Processing
High Also affects gradio
GHSA-pfjf-5gxr-995x
Gradio has an Open Redirect in its OAuth Flow
Medium Also affects gradio
GHSA-39mp-8hj3-5c49
Gradio is Vulnerable to Absolute Path Traversal on Windows with Python 3.13+
High Also affects gradio
GHSA-h3h8-3v2v-rg7m
Gradio: Mocked OAuth Login Exposes Server Credentials and Uses Hardcoded Session Secret
Medium Also affects gradio
GHSA-8jw3-6x8j-v96g
Gradio Allows Unauthorized File Copy via Path Manipulation
High Also affects gradio
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor