The `is_in_or_equal` function may be bypassed in Gradio
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- High
- Attack requirements
- Present
- Impact type
- Information disclosure
- Confidentiality · integrity · availability
- Low · None · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-22 and the CVSS impact.
Summary
Gradio is an open-source Python package designed for quick prototyping. This vulnerability relates to the **bypass of directory traversal checks** within the `is_in_or_equal` function. This function, intended to check if a file resides within a given directory, can be bypassed with certain payloads that manipulate file paths using `..` (parent directory) sequences. Attackers could potentially access restricted files if they are able to exploit this flaw, although the difficulty is high. This primarily impacts users relying on Gradio’s blocklist or directory access validation, particularly when handling file uploads. Users are advised to upgrade to `gradio>=5.0` to address this issue. As a workaround, users can manually sanitize and normalize file paths in their Gradio deployment before passing them to the `is_in_or_equal` function. Ensuring that all file paths are properly resolved and absolute can help mitigate the bypass vulnerabilities caused by the improper handling of `..` sequences or malformed paths.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| gradio-app | gradio | before 5.0 | 5.0 | Patch available | CNA |
| — | gradio (PyPI) | before 5.0.0 | 5.0.0 | Patch available | GHSA-77xq-6g77-h274 |
- gradio Vendorgradio-app Affected before 5.0 Fixed in 5.0 Patch available CNA
- gradio (PyPI) Vendor— Affected before 5.0.0 Fixed in 5.0.0 Patch available GHSA-77xq-6g77-h274
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:gradio_project:gradio:*:*:*:*:*:python:*:* | before 5.0.0 | Vulnerable | gradio-app |
- cpe:2.3:a:gradio_project:gradio:*:*:*:*:*:python:*:* Versions before 5.0.0 Vulnerable ·gradio-app
Remediation
- Fix · CNA gradio (gradio-app) Fixed in 5.0
- Fix · GHSA-77xq-6g77-h274 gradio (PyPI) Fixed in 5.0.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2024-47164
- 2026-10-03 Alias added: GHSA-77xq-6g77-h274
References
Advisory 2
More gradio-app Gradio vulnerabilities
- TI-2024-26222 Gradio v4.36.1 was discovered to contain a code injection vulnerability via the component… CVSS 3.1CRITICAL 9.8
- TI-2024-01607 Local File Inclusion in gradio-app/gradio CVSS 3.1HIGH 7.5
- TI-2024-00889 LFI in Gradio CVSS 3.1CRITICAL 9.4
- TI-2025-16852 Gradio Blocked Path ACL Bypass Vulnerability CVSS 4.0HIGH 8.7
- TI-2026-22690 Gradio has SSRF via Malicious `proxy_url` Injection in `gr.load()` Config Processing CVSS 3.1HIGH 8.6
- TI-2024-09866 Path Traversal in gradio-app/gradio CVSS 3.0HIGH 8.2
Sources
- CVE-2024-47164 · CVE Program
- CVE-2024-47164 · NVD
- FIRST EPSS
- GHSA-77xq-6g77-h274 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences