CVE-2024-4941 Local File Inclusion in JSON component in gradio-app/gradio
An attacker can read arbitrary files on the server by exploiting a path traversal flaw in the JSON component's file handling logic.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2024-4941?
CVE-2024-4941 is a high-severity path traversal vulnerability in Gradio Project Gradio, published on 6 Jun 2024. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
A local file inclusion vulnerability exists in the JSON component of gradio-app/gradio version 4.25. The vulnerability arises from improper input validation in the `postprocess()` function within `gradio/components/json_component.py`, where a user-controlled string is parsed as JSON. If the parsed JSON object contains a `path` key, the specified file is moved to a temporary directory, making it possible to retrieve it later via the `/file=..` endpoint. This issue is due to the `processing_utils.move_files_to_cache()` function traversing any object passed to it, looking for a dictionary with a `path` key, and then copying the specified file to a temporary directory. The vulnerability can be exploited by an attacker to read files on the remote system, posing a significant security risk.
Weakness: CWE-22
Which versions are affected by CVE-2024-4941?
3 open source packages ship an affected version, including gradio. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
gradio PyPI | All versions | 4.31.3 |
gradio PyPI | All versions | 4.31.3 |
gradio PyPI | All versions | 4.31.4 |
Products include Gradio Project Gradio.
How do I fix CVE-2024-4941?
Upgrade gradio to a fixed version for your release line: 4.31.3 or 4.31.4.
Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.
Is CVE-2024-4941 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2024-4941 exists.
Other vulnerabilities in Gradio Project Gradio
- CVE-2024-39236 Withdrawn Advisory: Gradio was discovered to contain a code injection vulnerability via the component /gradio/component_meta.py
- CVE-2023-6572 Command Injection in gradio-app/gradio
- CVE-2022-24770 Improper Neutralization of Formula Elements in a CSV File in Gradio Flagging
- CVE-2026-49119 Gradio < 6.16.0 Path Traversal via FileExplorer.preprocess()
- CVE-2025-23042 Gradio Blocked Path ACL Bypass Vulnerability
Sources
Also known as GHSA-6v6g-j5fq-hpvw, PYSEC-2024-184.