CVE-2024-51751·Python vulnerability
Gradio is an open-source Python package designed to enable quick builds of a demo or web application. If File or UploadButton components are used as a part of Gradio application to preview file content, an attacker with access to the application might abuse these components to read arbitrary files from the application server. This issue has been addressed in release version 5.5.0 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Severity
- medium
- Software
- Python
- Fixed in
- 5.5.0
- Published
- 2024-11-06
Affected versions
From: 5.0.0
Until: 5.5.0
Fixed in: 5.5.0
How to fix this CVE
Upgrade Gradio to version 5.5.0 or later to remediate the unauthorized file read vulnerability affecting File and UploadButton components. Organizations running Gradio versions 5.0.0 through 5.4.x should prioritize this update, as authenticated users can exploit these components to access sensitive files on the application server. No workarounds are available; patching is the only mitigation.
sudo dnf update python3-gradio || sudo pip3 install --upgrade gradio==5.5.0Defensia detects this vulnerability
WAF mitigation (if patching is not yet possible)
Add this rule to your WAF to block exploitation attempts while you schedule the patch.
Implement access controls on file preview endpoints by validating file paths against a whitelist of allowed directories. Reject any preview requests that attempt to traverse parent directories or reference paths outside the designated upload directory. Add authentication rate limiting to reduce the window for brute-force file enumeration attempts.How to check if you are affected
- Check Gradio version: python3 -c "import gradio; print(gradio.__version__)"
- Identify Gradio applications in use: grep -r "gr.File\|gr.UploadButton" /path/to/app --include="*.py"
- Search application logs for suspicious file access patterns: grep -i "preview\|download\|file" /var/log/application.log | grep -v expected_users
- Verify patched version is running: python3 -c "import gradio; print(gradio.__version__)" and confirm version >= 5.5.0
FAQ
What is CVE-2024-51751?
This vulnerability allows authenticated users to bypass file access restrictions in Gradio's File and UploadButton components, enabling unauthorized reading of arbitrary files from the application server during file preview operations.
Is CVE-2024-51751 being actively exploited?
No, CVE-2024-51751 is not currently listed on the CISA Known Exploited Vulnerabilities catalog, and no public exploits are available. However, the vulnerability requires only authentication and low complexity to exploit.
What versions of Python are affected by CVE-2024-51751?
CVE-2024-51751 affects Gradio versions 5.0.0 through 5.4.x. The vulnerability is not tied to Python itself but to the Gradio package running on Python; it impacts any deployment using vulnerable Gradio versions regardless of Python version.
How do I check if my server is vulnerable to CVE-2024-51751?
Run `python3 -c "import gradio; print(gradio.__version__)"` and verify the version is 5.5.0 or later. If the output is 5.0.0-5.4.x, your deployment is vulnerable.
Does Defensia detect CVE-2024-51751?
Yes — Defensia's CVE advisory scanner compares installed Gradio package versions against the NVD database. If Gradio is installed on a monitored server, CVE-2024-51751 will appear in your dashboard with remediation steps.
Related Python CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-51751. Free for 1 server.
Get started free