CVE-2024-4941 json
Local File Inclusion in JSON component in gradio-app/gradio
published 2024-06-06 2 y ago modified 2026-06-17 4 mo ago also GHSA-6v6g-j5fq-hpvw , PYSEC-2024-184 , EUVD-2024-0063
- cvss
- 7.5
- version 3.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.8%
- EPSS 0.8% chance of exploitation in 30 days, percentile 57%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- pypi gradio 4.31.3, 4.31.4
- gradio-app gradio-app/gradio 4.31.4
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 19 mo ago
Exploit prediction
0.83% chance of exploitation in the next 30 days, higher than 57% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- huntr.com https://huntr.com/bounties/39889ce1-298d-4568-aecd-7ae40c2ca58e referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.0 | 7.5 | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| GitHub | 3.0 | 7.5 | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| OSV | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | gradio | <4.31.3 <4.31.4 |
4.31.3 4.31.4 |
Affected products
- gradio-app gradio-app/gradio
Classification
References
-
github.com
/gradio-app/gradio/commit/ee1e2942e0a1ae84a08a05464e41c8108a03fa9c
web, patch
-
huntr.com
/bounties/39889ce1-298d-4568-aecd-7ae40c2ca58e
web, exploit, third-party-advisory, evidence
-
nvd.nist.gov
/vuln/detail/CVE-2024-4941
advisory
-
github.com
/gradio-app/gradio
package
-
github.com
/pypa/advisory-database/tree/main/vulns/gradio/PYSEC-2024-184.yaml
web
-
github.com
/advisories/GHSA-6v6g-j5fq-hpvw
advisory
Sources
- CVE List CVE-2024-4941
- GitHub Advisory GHSA-6v6g-j5fq-hpvw
- NVD CVE-2024-4941
- OSV PYSEC-2024-184
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.