CVE-2024-10648: Gradio: path traversal enables arbitrary file deletion DoS

GHSA-pgfv-gvc5-prfg HIGH PoC AVAILABLE CISA: TRACK*
Published March 20, 2025
CISO Take

Any Gradio instance (versions 4.0.0–5.0.0b2) exposed to a network is vulnerable to unauthenticated file-wiping attacks via crafted audio format parameters — no credentials needed, no user interaction required. The attack resets arbitrary server files to empty, causing immediate service disruption to any AI workload served through Gradio. Audit your ML demo environments, internal AI tools, and Hugging Face Spaces deployments immediately and upgrade or isolate.

What is the risk?

High severity in context despite low EPSS (0.00245). The CVSS 8.2 score reflects a zero-barrier attack path: network-accessible, no auth, no interaction. While not yet actively exploited at scale, Gradio is ubiquitous in AI/ML environments — model demos, internal prototyping tools, and production-adjacent inference UIs. A single successful exploit can wipe config files, weights, or application code, halting AI services. Exposure risk is elevated because Gradio instances are frequently deployed internet-facing (Hugging Face Spaces, internal demos) with minimal hardening.

What systems are affected?

Package Ecosystem Vulnerable Range Patched
Gradio pip No patch
43.0K OpenSSF 5.6 685 dependents Pushed 5d ago 26% patched ~110d to patch Full package profile →
Gradio pip >= 4.0.0, <= 5.0.0b2 No patch
43.0K OpenSSF 5.6 685 dependents Pushed 5d ago 26% patched ~110d to patch Full package profile →

How severe is it?

CVSS 3.1
8.2 / 10
EPSS
0.7%
chance of exploitation in 30 days
Higher than 47% of all CVEs
Exploitation Status
Exploit Available
Exploitation: MEDIUM
Sophistication
Trivial
Exploitation Confidence
medium
CISA SSVC: Public PoC
Public PoC indexed (trickest/cve)
Composite signal derived from CISA KEV, VulnCheck KEV, CISA SSVC, EPSS, Metasploit, Exploit-DB, trickest/cve, Nuclei templates, and inthewild.io exploitation reports.

What is the attack surface?

AV AC PR UI S C I A
AV Network
AC Low
PR None
UI None
S Unchanged
C None
I Low
A High

What should I do?

5 steps
  1. PATCH

    Upgrade to Gradio >5.0.0b2 immediately. No official patch version is confirmed in the advisory yet — monitor https://github.com/gradio-app/gradio/releases for the fix commit post-98cbcae.

  2. ISOLATE

    If patching is not immediately possible, restrict Gradio instances to authenticated internal networks only — remove all public exposure.

  3. WORKAROUND

    Implement a WAF rule blocking audio format parameters containing path traversal sequences (../, ..\, URL-encoded equivalents).

  4. DETECT

    Audit server logs for unusual format parameter values in audio processing requests; alert on file size drops to zero in monitored directories.

  5. HARDEN

    Run Gradio in a container with read-only filesystem mounts where possible, limiting blast radius of file deletion.

What does CISA's SSVC say?

Decision Track*
Exploitation poc
Automatable Yes
Technical Impact partial

Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.

How is it classified?

Which compliance frameworks are affected?

This CVE is relevant to:

EU AI Act
Article 15 - Accuracy, robustness and cybersecurity
ISO 42001
A.6.2.5 - AI system security and resilience
NIST AI RMF
MANAGE 2.6 - Residual risks are monitored and managed
OWASP LLM Top 10
LLM05:2025 - Improper Output Handling / Insecure Plugin Design

Frequently Asked Questions

What is CVE-2024-10648?

Any Gradio instance (versions 4.0.0–5.0.0b2) exposed to a network is vulnerable to unauthenticated file-wiping attacks via crafted audio format parameters — no credentials needed, no user interaction required. The attack resets arbitrary server files to empty, causing immediate service disruption to any AI workload served through Gradio. Audit your ML demo environments, internal AI tools, and Hugging Face Spaces deployments immediately and upgrade or isolate.

Is CVE-2024-10648 actively exploited?

Proof-of-concept exploit code is publicly available for CVE-2024-10648, increasing the risk of exploitation.

How to fix CVE-2024-10648?

1. PATCH: Upgrade to Gradio >5.0.0b2 immediately. No official patch version is confirmed in the advisory yet — monitor https://github.com/gradio-app/gradio/releases for the fix commit post-98cbcae. 2. ISOLATE: If patching is not immediately possible, restrict Gradio instances to authenticated internal networks only — remove all public exposure. 3. WORKAROUND: Implement a WAF rule blocking audio format parameters containing path traversal sequences (../, ..\, URL-encoded equivalents). 4. DETECT: Audit server logs for unusual format parameter values in audio processing requests; alert on file size drops to zero in monitored directories. 5. HARDEN: Run Gradio in a container with read-only filesystem mounts where possible, limiting blast radius of file deletion.

What systems are affected by CVE-2024-10648?

This vulnerability affects the following AI/ML architecture patterns: model serving, AI demo platforms, ML prototyping environments, inference APIs with Gradio frontend.

What is the CVSS score for CVE-2024-10648?

CVE-2024-10648 has a CVSS v3.1 base score of 8.2 (HIGH). The EPSS exploitation probability is 0.67%.

What is the AI security impact?

Affected AI Architectures

model servingAI demo platformsML prototyping environmentsinference APIs with Gradio frontend

MITRE ATLAS Techniques

AML.T0010.001 AI Software
AML.T0029 Denial of AI Service
AML.T0049 Exploit Public-Facing Application

Compliance Controls Affected

EU AI Act: Article 15
ISO 42001: A.6.2.5
NIST AI RMF: MANAGE 2.6
OWASP LLM Top 10: LLM05:2025

What are the technical details?

Original Advisory

A path traversal vulnerability exists in the Gradio Audio component of gradio-app/gradio, as of version git 98cbcae. This vulnerability allows an attacker to control the format of the audio file, leading to arbitrary file content deletion. By manipulating the output format, an attacker can reset any file to an empty file, causing a denial of service (DOS) on the server.

Exploitation Scenario

Adversary identifies a public-facing Gradio instance running a speech-to-text or audio classification model (common in enterprise AI demos). Using the Gradio Audio component's format parameter, they craft a request that manipulates the output path via CWE-29 path traversal (e.g., injecting '..filename' sequences to escape the intended temp directory). The Gradio processing_utils.py handler at line 234 resolves the attacker-controlled path and resets the target file to empty. The adversary iterates over predictable paths: application config files, model weight files (*.pt, *.onnx), or database files — systematically disabling the AI service. No authentication token, API key, or insider access required.

Weaknesses (CWE)

CWE-29 — Path Traversal: '..filename': The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize '\..\filename' (leading backslash dot dot) sequences that can resolve to a location that is outside of that directory.

  • [Implementation] Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does. When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue." Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylis
  • [Implementation] Inputs should be decoded and canonicalized to the application's current internal representation before being validated (CWE-180). Make sure that the application does not decode the same input twice (CWE-174). Such errors could be used to bypass allowlist validation schemes by introducing dangerous inputs after they have been checked.

Source: MITRE CWE corpus.

CVSS Vector

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

Timeline

Published
March 20, 2025
Last Modified
October 14, 2025
First Seen
March 20, 2025

Related Vulnerabilities